lua小数点在 -0.1 到 0.1(不包括)范围内出现错误

我有一个 Lua 循环,通过 0.01 的增量遍历从 -1 到 1 的数字,并在 -0.1 到 0.1 范围内(不包括)产生像 6.6613381477509e-016 这样糟糕的数值

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

我更希望解决问题而不是仅接收说明,但这总比一无所获好

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

点赞
用户1009479
用户1009479

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

改为:

for i = -100, 100 do
  print(i / 100)
end
2016-07-07 02:08:08