我有一个Lua for循环,它以0.01的增量迭代从-1到1的数字,并且产生的像-6.6613381477509e-016一样糟糕,范围为-0.1到0.1(不包括)

我在用C++编写的LOVE引擎(v 0.9.2)中使用Lua

我宁愿解决问题,也不愿仅仅收到解释的信息转储,但我宁愿什么都不要。

(我也理解浮动的不正确的一般原因,因此可以省略解释)

最佳答案

您已经知道了原因,这是一个可能的解决方案:不要循环使用浮点数,而应使用整数。

代替

for i = -1, 1, 0.01 do

用:
for i = -100, 100 do
  print(i / 100)
end

10-05 23:36