LUA - 如何对百分比数字进行四舍五入?

LUA - How to round a percentage number?

我想四舍五入一个百分比数字,如果是 94.5% 就可以这样显示。但是如果数字是 10.0% 或 100.0% 或 40.0% 则只显示数字 40% 而没有 .0

在JS中是Number(percentage).toFixed(1);但我不知道 LUA.

中的情况

有什么想法吗?

你可以先四舍五入到1个小数点,然后用%g减少无意义零的输出。

local values = {"100.0", "94.25","94.7","20.0"}

for k,v in pairs(values) do
    print( string.format("%g",string.format("%.1f",v)) )  
end

输出:

100
94.3
94.7
20

可以通过 math.ceil()math.floor()...

将浮点数四舍五入为整数
> for k,v in pairs({"100.0", "94.25","94.7","20.0"}) do print(math.ceil(v)) end
100
95
95
20
> for k,v in pairs({"100.0", "94.25","94.7","20.0"}) do print(math.floor(v)) end
100
94
94
20