2016-07-07 72 views
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++编写

我宁愿解决的问题不仅仅是得到的解释的信息转储,但我宁愿没有任何东西。

(也是我明白一般的原因花车是不准确的,因此可以省略解释)

+0

我没有看到6.6613381477509e-016是一个多么糟糕的数字。它出现在-0.01和0.01之间,对吧? –

+0

向我们显示代码。如果你从'-1.0'开始获得这个值,并且通过'0.01'增加100次,我不会感到惊讶。 –

+0

在我的系统上,这个:'lua -e'x = -1 for i = 1,100 do x = x + 0.01 end print(x)''print'7.5286998857393e-16' –

回答

6

你已经知道的原因,这里有一个可能的解决方案:不要循环使用浮点数,使用整数。

而不是

for i = -1, 1, 0.01 do 

使用:

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