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

1 view (last 30 days)
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 Comment
Matt H
Matt H on 23 Jul 2013
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

Sign in to comment.

Accepted Answer

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

More Answers (0)

Community Treasure Hunt

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

Start Hunting!