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

Pix*_*xel 3 lua floating-accuracy love2d

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

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

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

(我也理解浮点数的一般原因是不准确的,因此可能会遗漏解释)

Yu *_*Hao 6

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

代替

for i = -1, 1, 0.01 do
Run Code Online (Sandbox Code Playgroud)

使用:

for i = -100, 100 do
  print(i / 100)
end
Run Code Online (Sandbox Code Playgroud)