3
我有一个Lua for循环,循环遍历从-1到1的数字,增量为0.01,并且生成的数字与6.6613381477509e-016一样差,范围为 - 0.1至0.1(不含)lua小数点打破-0.1到0.1(独家)
我在LOVE引擎使用Lua(v 0.9.2),用C++编写
我宁愿解决的问题不仅仅是得到的解释的信息转储,但我宁愿没有任何东西。
(也是我明白一般的原因花车是不准确的,因此可以省略解释)
我有一个Lua for循环,循环遍历从-1到1的数字,增量为0.01,并且生成的数字与6.6613381477509e-016一样差,范围为 - 0.1至0.1(不含)lua小数点打破-0.1到0.1(独家)
我在LOVE引擎使用Lua(v 0.9.2),用C++编写
我宁愿解决的问题不仅仅是得到的解释的信息转储,但我宁愿没有任何东西。
(也是我明白一般的原因花车是不准确的,因此可以省略解释)
你已经知道的原因,这里有一个可能的解决方案:不要循环使用浮点数,使用整数。
而不是
for i = -1, 1, 0.01 do
使用:
for i = -100, 100 do
print(i/100)
end
我没有看到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)''print'7.5286998857393e-16' –