如何在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
当前回答
我很惊讶居然没有人建议
(numerator + denominator - 1) // denominator
整数除法的四舍五入。曾经是C/ c++ /CUDA (cf. divup)的常用方式
其他回答
如果处理整数,一种四舍五入的方法是利用//四舍五入的事实:只对负数进行除法,然后对结果求负数。不需要导入、浮点数或条件。
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)))
如果有人想四舍五入到一个特定的小数点后:
import math
def round_up(n, decimals=0):
multiplier = 10 ** decimals
return math.ceil(n * multiplier) / multiplier
四舍五入的值应该是浮动的
a = 8
b = 21
print math.ceil(a / b)
>>> 0
but
print math.ceil(float(a) / b)
>>> 1.0
您可以使用楼层划分并添加1。 2.3 // 2 + 1