Lua Math Ceil在小数点后无数字时向上舍入数字

时间:2018-10-12 01:46:56

标签: lua ceil

我想在Lua中使用math.ceil来取整数字。

其中某些情况是有道理的:

  • ceil(260.5)-> 261

但是有些情况很奇怪:

  • ceil(2.2 * 100)-> 221#假设没有向上取整,答案为220

我不知道为什么会这样,如果要在小数点后有数字的情况下将数字四舍五入,而只有整数则不能四舍五入怎么办?

-更新: 感谢@cyclaminist的回答: 2.2 * 100实际上比220.0稍大一点,因为2.2不能完全表示为浮点数。试试('%.15f'):format(2.2 * 100):对我来说,它是'220.000000000000028'

Ceil将返回最接近且不小于220.000000000000028的整数,以便返回221。

获得220的解决方案是: math.floor(2.2 * 100 + 0.5)->返回220,因为math.floor返回最接近但不大于220.000000000000028

1 个答案:

答案 0 :(得分:0)

尝试tonumber(string.format("%.0f",2.2*100))