如何在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
当前回答
试试这个:
a = 211.0
print(int(a) + ((int(a) - a) != 0))
其他回答
如果有人想四舍五入到一个特定的小数点后:
import math
def round_up(n, decimals=0):
multiplier = 10 ** decimals
return math.ceil(n * multiplier) / multiplier
当你在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只假设结果为“数字类型”,并直接返回结果为浮点数
祝你好运! !
这里有一种使用模和bool的方法
n = 2.3
int(n) + bool(n%1)
输出:
3
你可能也喜欢numpy:
>>> import numpy as np
>>> np.ceil(2.3)
3.0
我并不是说numpy比数学更好,但如果您已经将numpy用于其他目的,则可以保持代码的一致性。
总之,这是我偶然发现的一个细节。我经常使用numpy,很惊讶没有人提到它,但当然,公认的答案是完全正确的。
我认为你混淆了int()和round()之间的工作机制。
如果给定的是浮点数,Int()总是截断小数;而round(),在2.5的情况下,2和3都在距离2.5相等的距离内,Python返回距离0点更远的值。
round(2.5) = 3
int(2.5) = 2