0

我有一个值 = 2.05 的浮点数,当我执行 field*1000 时,结果是 2049.999952316284 为什么结果不是 2050.0?.

谢谢

4

1 回答 1

1

大概是因为该字段不是存储为 2.05 而是存储为 2.04999。如果增加字段的分辨率,即存储为 2.0500,会发生什么情况?

这个问题是由于计算机无法准确存储一些实数。

顺便说一句,如果该值应该是货币值,请将其存储为数字 (12,2),这样就不会出现任何浮点错误。

于 2012-09-27T12:02:55.117 回答