python3.7.5:round()在看似相同的情况下表现不同?
在Python3.7.5下,我执行以下代码并得到一个奇怪的输出python3.7.5:round()在看似相同的情况下表现不同?,python,python-3.x,Python,Python 3.x,在Python3.7.5下,我执行以下代码并得到一个奇怪的输出 for i in range(10): print(round(i+0.5)) 如果我理解正确,在round()操作下,任何看起来像xxx…x.5且带有任何数字x的数字应始终向上取整为xxx…x+1,无论整整数部分是偶数还是奇数。我的输入有错误吗?如何解决这个问题?谢谢你的建议 最好使用数学模块: 根据需要,将round替换为floor或ceil: 来自数学导入层,ceil 现在对于向下取整使用floor()和向上取整
for i in range(10):
print(round(i+0.5))
如果我理解正确,在
round()
操作下,任何看起来像xxx…x.5
且带有任何数字x
的数字应始终向上取整为xxx…x+1
,无论整整数部分是偶数还是奇数。我的输入有错误吗?如何解决这个问题?谢谢你的建议 最好使用数学模块:
根据需要,将round
替换为floor
或ceil
:
来自数学导入层,ceil
现在对于向下取整使用floor()
和向上取整使用ceil()
打印(地板(2.9))
输出:2
打印(ceil(1.1))
输出:2
如果您将0.5
更改为0.51
,您将得到您想要的。请参阅可能的副本