Single versus double precision, what's going on here?

Why does: >> 14+18300+200000+5000000+550000000
ans =
555218314
But: >> single(14)+single(18300)+single(200000)+single(5000000)+single(550000000)
ans =
555218304
Am I missing something? Thanks!

1 commentaire

Answer: In single precision, the fraction only contains 23 bits, so there 2^(23+1) for the maximum value, before you start losing precision at the integer level. So 2^24 = 16777216. >> single(16777216)
ans =
16777216
>> single(16777217)
ans =
16777216

Connectez-vous pour commenter.

 Réponse acceptée

dpb
dpb le 23 Juil 2013
Hint--(a very large one :) )
single(550000000)+single(5000000)+single(200000)+single(18300)
ans = ???

Plus de réponses (0)

Catégories

En savoir plus sur Operators and Elementary Operations dans Centre d'aide et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by