Lua中的string.format("%d")对一些整数失效。

我正在使用lua 5.3.2版本,以下代码片段给我返回一个错误:

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

而下面这行代码运行正常

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

这可能与这个问题有关,但失败取决于浮点值。因为在我的情况下,一个本地变量(v)保存浮点值,并且是由生成在0到2之间的值并舍入为2位小数的表达式生成的。

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

点赞
用户1442917
用户1442917

你可以使用 math.floor 将其转换为整数,如果需要四舍五入,可以加上 +0.5math.floor(1.16 * 100 + 0.5)。或者,"%.0f" 也会产生相同的效果。

2016-01-17 06:30:06