python3.7.5:round()在看似等效的情况下的行为有所不同吗?

时间:2019-11-13 05:01:25

标签: python python-3.x

在python 3.7.5下,我执行以下代码并获得一个奇怪的输出

for i in range(10):
    print(round(i+0.5))

enter image description here

如果我理解正确,那么在xxx...x.5操作下,任何看起来像x且数字为xxx...x+1的数字应始终四舍五入为round()部分是偶数还是奇数。我在输入中犯了一些错误吗?如何解决这个问题?感谢您的任何建议!

1 个答案:

答案 0 :(得分:1)

最好使用math模块:
根据需要将round替换为floorceil

from math import floor, ceil

现在向下使用floor()向上使用ceil()

print(floor(2.9))
  

输出: 2

print(ceil(1.1))
  

输出: 2