【发布时间】:2019-02-01 06:30:18
【问题描述】:
在 LUA(introduction of integers in 5.3 之前)中处理 for 循环中计算的范围值的典型方法是什么? numerical for 循环中开始和结束值的数学计算会使代码面临错误的风险,可能是令人讨厌的潜在错误,因为这只会发生在某些值和/或计算顺序发生变化时。这是一个不产生期望输出的循环的编造示例:
a={"a","b","c","d","e"}
maybethree = 3
maybethree = maybethree / 94
maybethree = maybethree * 94
for i = 1,maybethree do print(a[i]) end
这会产生两个项目的不幸输出,而不是所需的三个(在 64 位 x86 上的 5.1.4 上测试):
a
b
不熟悉这个领域的程序员可能会被 print() 输出弄糊涂,因为它会打印 3!
将舍入函数应用于最接近的整数可以在这里工作。我了解 approximatation with FP 以及为什么会失败,我对 LUA 中的典型样式/解决方案感兴趣。
相关问题:
【问题讨论】:
标签: for-loop lua floating-point