如何在Python中四舍五入一个数字向上?
我试过四舍五入,但它把数字四舍五入了。例子:
round(2.3) = 2.0
而不是我想要的3。
我尝试了int(number + .5),但它再次四舍五入!例子:
int(2.3 + .5) = 2
如何在Python中四舍五入一个数字向上?
我试过四舍五入,但它把数字四舍五入了。例子:
round(2.3) = 2.0
而不是我想要的3。
我尝试了int(number + .5),但它再次四舍五入!例子:
int(2.3 + .5) = 2
当前回答
我基本上是Python的初学者,但如果你只是想四舍五入而不是向下,为什么不这样做:
round(integer) + 1
其他回答
我很惊讶居然没有人建议
(numerator + denominator - 1) // denominator
整数除法的四舍五入。曾经是C/ c++ /CUDA (cf. divup)的常用方式
我知道这是很久以前的事了,但我找到了一个非常有趣的答案,所以是这样的:
-round(-x-0.5)
这修复了边缘情况,适用于正数和负数,并且不需要任何函数导入
干杯
您可以使用楼层划分并添加1。 2.3 // 2 + 1
我知道这个答案是以前的一个问题,但如果你不想输入数学,你只想四舍五入,这对我来说很有用。
>>> int(21 / 5)
4
>>> int(21 / 5) + (21 % 5 > 0)
5
第一部分变成4,如果有余数,第二部分计算为“True”,加上True = 1;False = 0。如果没有余数,它还是原来的整数,但如果有余数,它就加1。
如果处理整数,一种四舍五入的方法是利用//四舍五入的事实:只对负数进行除法,然后对结果求负数。不需要导入、浮点数或条件。
rounded_up = -(-numerator // denominator)
例如:
>>> print(-(-101 // 5))
21