如何在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
当前回答
如果你不想导入任何东西,你可以编写自己的简单函数:
def RoundUP(num):
if num== int(num):
return num
return int(num + 1)
其他回答
如果处理整数,一种四舍五入的方法是利用//四舍五入的事实:只对负数进行除法,然后对结果求负数。不需要导入、浮点数或条件。
rounded_up = -(-numerator // denominator)
例如:
>>> print(-(-101 // 5))
21
的数学。函数返回大于或等于x的最小整数。
对于Python 3:
import math
print(math.ceil(4.2))
对于Python 2:
import math
print(int(math.ceil(4.2)))
我的分享
我已经测试了print(-(-101 // 5)) = 21上面给出的例子。
现在来总结一下:
101 * 19% = 19.19
我不能用**,所以我把乘除展开:
(-(-101 //(1/0.19))) = 20
上面的答案是正确的,但是,仅仅为这个函数导入数学模块对我来说通常感觉有点过分。幸运的是,还有另一种方法:
g = 7/5
g = int(g) + (not g.is_integer())
在python中涉及数字的语句中,True和False被解释为1和0。g.s is_integer()基本上转换为g.s has_no_decimal()或g == int(g)。所以英语的最后一个表述是把g四舍五入,如果g有小数,就加1。
我基本上是Python的初学者,但如果你只是想四舍五入而不是向下,为什么不这样做:
round(integer) + 1