lua小数值突破-0.1到0.1(独家)

时间:2016-07-07 02:03:01

标签: lua floating-accuracy love2d

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

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

我宁愿解决这个问题而不仅仅是接收一个解释的信息转储,但我宁愿这也不是什么。

(我也理解浮动的一般原因是不准确的,因此可能会被解释掉)

1 个答案:

答案 0 :(得分:6)

You've already known the reason, here's a possible solution: don't loop with floating point numbers, use integers.

Instead of

for i = -1, 1, 0.01 do

use:

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