python3.7.5 : round() behaves differently in seemingly equivalent cases?

标签 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+1round()运算,无论完整整数部分是偶数还是奇数。我的输入是否犯了一些错误?如何解决这个问题?感谢您的任何建议!

最佳答案

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

from math import floor, ceil

现在对于向下舍入使用floor(),对于向上舍入使用ceil()

print(floor(2.9))

output: 2

print(ceil(1.1))

output: 2

关于python3.7.5 : round() behaves differently in seemingly equivalent cases?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58830587/

相关文章:

python - (PYTHON)如何完全添加列表中元素的每第 N 项以生成新列表?

python - 删除 Pandas 列的最佳方法是什么

python - 紧固查询elasticsearch

python - 读取 CSV 文件中的所有列?

python - input() 和文字 unicode 解析

django - 如何将类属性添加到 Django 身份验证登录表单?

python - 创建一个组合两个函数的装饰器,而不指定原始函数的调用签名

java - 在 Android 中编码多部分表单数据

Python 在使用 Psycopg2 的 cursor.execute() 期间挂起

python - Numpy 切片函数 : Dynamically create slice indices np. r_[a :b, c :d, ...] 来自形状为 (X, 2) 的数组,用于在数组中进行选择