如何在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
当前回答
当你在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只假设结果为“数字类型”,并直接返回结果为浮点数
祝你好运! !
其他回答
上面的答案是正确的,但是,仅仅为这个函数导入数学模块对我来说通常感觉有点过分。幸运的是,还有另一种方法:
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。
我很惊讶居然没有人建议
(numerator + denominator - 1) // denominator
整数除法的四舍五入。曾经是C/ c++ /CUDA (cf. divup)的常用方式
如果有人想四舍五入到一个特定的小数点后:
import math
def round_up(n, decimals=0):
multiplier = 10 ** decimals
return math.ceil(n * multiplier) / multiplier
有趣的Python 2。要记住的X问题:
>>> import math
>>> math.ceil(4500/1000)
4.0
>>> math.ceil(4500/1000.0)
5.0
问题是,在python中,两个整型数的除法会产生另一个整型数,并且在ceiling调用之前被截断。您必须将一个值设置为浮点(或强制转换)以获得正确的结果。
在javascript中,完全相同的代码产生不同的结果:
console.log(Math.ceil(4500/1000));
5
你可以这样使用round:
cost_per_person = round(150 / 2, 2)