lua 小数点在 -0.1 到 0.1(不含)之间

lua decimals break around -0.1 to 0.1 (exclusive)

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

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

我宁愿解决问题,也不愿只收到解释的信息转储,但我宁愿这样也不愿什么都没有。

(我也明白浮点数不准确的一般原因,所以可能会被排除在解释之外)

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

而不是

for i = -1, 1, 0.01 do

使用:

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