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
我有一个 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