如何在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
当前回答
我的分享
我已经测试了print(-(-101 // 5)) = 21上面给出的例子。
现在来总结一下:
101 * 19% = 19.19
我不能用**,所以我把乘除展开:
(-(-101 //(1/0.19))) = 20
其他回答
>>> def roundup(number):
... return round(number+.5)
>>> roundup(2.3)
3
>>> roundup(19.00000000001)
20
该函数不需要模块。
有趣的Python 2。要记住的X问题:
>>> import math
>>> math.ceil(4500/1000)
4.0
>>> math.ceil(4500/1000.0)
5.0
问题是,在python中,两个整型数的除法会产生另一个整型数,并且在ceiling调用之前被截断。您必须将一个值设置为浮点(或强制转换)以获得正确的结果。
在javascript中,完全相同的代码产生不同的结果:
console.log(Math.ceil(4500/1000));
5
我基本上是Python的初学者,但如果你只是想四舍五入而不是向下,为什么不这样做:
round(integer) + 1
如果你不想导入任何东西,你可以编写自己的简单函数:
def RoundUP(num):
if num== int(num):
return num
return int(num + 1)
我的分享
我已经测试了print(-(-101 // 5)) = 21上面给出的例子。
现在来总结一下:
101 * 19% = 19.19
我不能用**,所以我把乘除展开:
(-(-101 //(1/0.19))) = 20