use*_*955 5 iteration lua loops for-loop
我是 lua 的新手,我正在使用它来自动化模拟程序 femm 中的一些任务。在我的脚本中,我有这种类型的 for 循环:
for i=0.1,0.3,0.1
do
print(i)
end
Run Code Online (Sandbox Code Playgroud)
问题是它只从 0.1 迭代到 0.2(它没有输入 i=0.3)。我尝试了其他值(例如从 0.1 到 0.4)并且它工作正常。为什么会发生这种奇怪的行为?这是浮点数问题吗?
发生这种情况是因为 0.1 与 0.1 相加 3 次会产生一个略大于 0.3 的数字。因此,循环在到达目标结束编号之前停止。
这就是使用浮点值进行循环迭代的危险。相反,用整数重写循环,并执行除法以获得所需的数字:
for j = 1,3
do
i = j/10
print(i)
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
366 次 |
| 最近记录: |