对于某些整数,Lua string.format("%d")失败

时间:2016-01-17 06:01:48

标签: lua format string-formatting

我正在使用lua 5.3.2,以下代码给出了一个错误:

string.format("%d", 1.16 * 100)

而以下行正常工作

string.format("%d", 1.25 * 100)

这可能与this question有关,但失败取决于浮点值。鉴于此,在我的情况下,局部变量(v)保持浮点值,并由表达式生成,该表达式生成0到2之间的值,舍入到2个小数位。

如何修改代码以确保对于任何可能的v值都不会失败?

1 个答案:

答案 0 :(得分:2)

如果需要对其进行舍入,可以使用math.floor转换为整数并添加+0.5math.floor(1.16 * 100 + 0.5)。或者,"%.0f"也应该具有所需的效果。