【发布时间】:2011-12-06 17:55:55
【问题描述】:
我有一个案例,我在 Float 对象上做一些数学运算,当我在它上面调用 to_i 时,它被减一。
value = 0.29 * 100
value.to_i
=> 28
我知道浮点数是不精确的表示,但这超出了我的预期。这是怎么回事,我该如何预防?
我使用的是 ruby 1.8.7(它也发生在 1.8.6 中)。
【问题讨论】:
-
人们何时会理解浮点值在转换为整数时会失去精度?
-
在这种情况下你可能想使用
value.ceil -
您预计会发生什么?
-
我期待的结果是 29。
标签: ruby floating-point-precision