如何在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
当前回答
您可以使用楼层划分并添加1。 2.3 // 2 + 1
其他回答
毫无意义地做:
>>> round_up = lambda num: int(num + 1) if int(num) != num else int(num)
>>> round_up(2.0)
2
>>> round_up(2.1)
3
如果你不想导入任何东西,你可以编写自己的简单函数:
def RoundUP(num):
if num== int(num):
return num
return int(num + 1)
试试这个:
a = 211.0
print(int(a) + ((int(a) - a) != 0))
上面的答案是正确的,但是,仅仅为这个函数导入数学模块对我来说通常感觉有点过分。幸运的是,还有另一种方法:
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。
这里有一种使用模和bool的方法
n = 2.3
int(n) + bool(n%1)
输出:
3