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



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

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

而以下行工作正常

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

这可能与这个问题有关,但失败取决于浮点值。鉴于在我的例子中,局部变量 (v) 保存浮点值,并由一个 expresson 生成,该表达式生成一个介于 0 和 2 之间的值,四舍五入到小数点后 2 位。

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

如果需要

四舍五入,您可以使用 math.floor 转换为整数并添加+0.5math.floor(1.16 * 100 + 0.5) .或者,"%.0f"也应该具有预期的效果。

最新更新