我正在使用lua 5.3.2,以下代码给出了一个错误:
string.format("%d", 1.16 * 100)
而以下行正常工作
string.format("%d", 1.25 * 100)
这可能与this question有关,但失败取决于浮点值。鉴于此,在我的情况下,局部变量(v)保持浮点值,并由表达式生成,该表达式生成0到2之间的值,舍入到2个小数位。
如何修改代码以确保对于任何可能的v值都不会失败?
答案 0 :(得分:2)
如果需要对其进行舍入,可以使用math.floor
转换为整数并添加+0.5
:math.floor(1.16 * 100 + 0.5)
。或者,"%.0f"
也应该具有所需的效果。