如何在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(num):
    if num== int(num):
        return num
    return int(num + 1)

没有导入math //使用基本环境:

A)方法/类方法

def ceil(fl): 
  return int(fl) + (1 if fl-int(fl) else 0)

def ceil(self, fl): 
  return int(fl) + (1 if fl-int(fl) else 0)

b)λ:

ceil = lambda fl:int(fl)+(1 if fl-int(fl) else 0)

的数学。函数返回大于或等于x的最小整数。

对于Python 3:

import math
print(math.ceil(4.2))

对于Python 2:

import math
print(int(math.ceil(4.2)))

我知道这个答案是以前的一个问题,但如果你不想输入数学,你只想四舍五入,这对我来说很有用。

>>> int(21 / 5)
4
>>> int(21 / 5) + (21 % 5 > 0)
5

第一部分变成4,如果有余数,第二部分计算为“True”,加上True = 1;False = 0。如果没有余数,它还是原来的整数,但如果有余数,它就加1。

当你在python中操作4500/1000时,结果将是4,因为默认的python将结果假设为整数,逻辑上: 4500/1000 = 4.5——> int(4.5) = 4 4的上限值显然是4

使用4500/1000.0,结果将是4.5,cil为4.5—> 5

使用javascript你会收到4.5作为4500/1000的结果,因为javascript只假设结果为“数字类型”,并直接返回结果为浮点数

祝你好运! !