我想要最像Pythonic的方式来舍入数字,就像Javascript一样(通过Math.round()
)。它们实际上略有不同,但这种差异会对我的应用产生巨大影响。
使用Python 3中的round()
方法:
// Returns the value 20
x = round(20.49)
// Returns the value 20
x = round(20.5)
// Returns the value -20
x = round(-20.5)
// Returns the value -21
x = round(-20.51)
使用Javascript *中的Math.round()
方法:
// Returns the value 20
x = Math.round(20.49);
// Returns the value 21
x = Math.round(20.5);
// Returns the value -20
x = Math.round(-20.5);
// Returns the value -21
x = Math.round(-20.51);
谢谢!
参考文献:
答案 0 :(得分:10)
import math
def roundthemnumbers(value):
x = math.floor(value)
if (value - x) < .50:
return x
else:
return math.ceil(value)
还没有喝咖啡,但这个功能应该做你需要的。也许还有一些小修改。
答案 1 :(得分:7)
Python的round
函数的行为在Python 2和Python 3之间发生了变化。但看起来您需要以下版本,这两个版本都适用:
math.floor(x + 0.5)
这应该产生你想要的行为。
答案 2 :(得分:1)
不是在python中使用round()函数,你可以在python中使用floor函数和ceil函数来完成你的任务。
地板(X + 0.5)
或
小区(X-0.5)