如何在Python中四舍五入一个数字向上?

我试过四舍五入,但它把数字四舍五入了。例子:

round(2.3) = 2.0 

而不是我想要的3。

我尝试了int(number + .5),但它再次四舍五入!例子:

int(2.3 + .5) = 2

当前回答

如果有人想四舍五入到一个特定的小数点后:

import math
def round_up(n, decimals=0):
    multiplier = 10 ** decimals
    return math.ceil(n * multiplier) / multiplier

其他回答

你可以这样使用round:

cost_per_person = round(150 / 2, 2)

  

使用数学。Ceil整理:

>>> import math
>>> math.ceil(5.4)
6.0

注意:输入应该是浮点数。

如果你需要一个整数,调用int来转换它:

>>> int(math.ceil(5.4))
6

顺便说一下,用数学。向下舍入和舍入到最接近的整数。

>>> math.floor(4.4), math.floor(4.5), math.floor(5.4), math.floor(5.5)
(4.0, 4.0, 5.0, 5.0)
>>> round(4.4), round(4.5), round(5.4), round(5.5)
(4.0, 5.0, 5.0, 6.0)
>>> math.ceil(4.4), math.ceil(4.5), math.ceil(5.4), math.ceil(5.5)
(5.0, 5.0, 6.0, 6.0)

X * -1 // 1 * -1

令人困惑,但它是有效的:当x=7.1时,你得到8.0。当x = -1.1时,得到-1.0

不需要导入模块。

如果处理整数,一种四舍五入的方法是利用//四舍五入的事实:只对负数进行除法,然后对结果求负数。不需要导入、浮点数或条件。

rounded_up = -(-numerator // denominator)

例如:

>>> print(-(-101 // 5))
21

如果你不想导入任何东西,你可以编写自己的简单函数:

def RoundUP(num):
    if num== int(num):
        return num
    return int(num + 1)