【发布时间】:2016-11-09 05:56:06
【问题描述】:
我有一个 Lua for 循环,它以 0.01 的增量迭代从 -1 到 1 的数字,并且在 -0.1 到 0.1 的范围内(不包括)产生与 6.6613381477509e-016 一样糟糕的数字
我在 LOVE 引擎 (v 0.9.2) 中使用 Lua,用 C++ 编写
我宁愿解决问题,也不愿收到解释的信息转储,但我宁愿那样做。
(我也理解浮点数不准确的一般原因,因此可能会被忽略)
【问题讨论】:
-
我看不出 6.6613381477509e-016 是个坏数字。它出现在 -0.01 和 0.01 之间,对吧?
-
向我们展示代码。如果您从
-1.0开始并以0.01递增 100 次获得该值,我一点也不感到惊讶。 -
在我的系统上,这个:
lua -e 'x = -1 for i = 1,100 do x = x + 0.01 end print(x)'打印7.5286998857393e-16 -
他们不再在初级计算机课程中教这个吗?
标签: lua floating-accuracy love2d