假设有任意一个数字,比如78.689或1.12,我想通过编程将该数字四舍五入到小数点后最近的一位。
我正在尝试在一个只有math.floor()
函数可以将数字向下取整的环境中完成这个任务,但根据文档显示,没有类似于PHP的round()
函数。
这里有一个简单的片段:http://lua-users.org/wiki/SimpleRound
function round(num, numDecimalPlaces)
local mult = 10^(numDecimalPlaces or 0)
return math.floor(num * mult + 0.5) / mult
end
当numDecimalPlaces为负数时,它会表现异常,但该页面有更多的例子。
value = 8.9756354
print(string.format("%2.1f", value))
-- output: 9.0
_G.round = function(x, factor)
local factor = (factor) and (10 ^ factor) or 0
return math.floor((x + 0.5) * factor) / factor
end
string.sub(tostring(percent * 100), 1, 4)
因此,为了将其转换为数字表示形式,您可以在结果数字上简单地调用tonumber()
。
string.format("%.1f", percent * 100)
- Egor Skriptunoff