【发布时间】:2015-05-03 00:26:57
【问题描述】:
当我运行代码时
count = 0
while count < 1
count += 0.1
puts count
end
我期待
0.1
0.2
0.3
. . .
但是我已经得到了
0.1
0.2
0.30000000000000004
0.4
0.5
0.6
0.7
0.7999999999999999
0.8999999999999999
0.9999999999999999
1.0999999999999999
谁能帮忙解释一下?
【问题讨论】:
-
在 Stack Overflow 上搜索有关浮点精度的问题。已经有很多答案了。这是我写的:stackoverflow.com/questions/28512650/…
-
提示:不要重复加 0.1 - 相反,将一个 整数 加 1,然后在每一步乘以 0.1。您仍然会遇到类似的问题,但您会得到 less 舍入错误。查看“Is floating point math broken?”以非常详细讨论您的问题。
标签: ruby floating-point