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

2 次查看(过去 30 天)
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 个评论
Matt H
Matt H 2013-7-23
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

请先登录,再进行评论。

采纳的回答

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

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by