python-3.x - 具有这种奇怪行为的 round() 的功能是什么?
问题描述
我想对一些整数进行四舍五入,但我遇到了 round() 的奇怪功能,例如
round(2.1) = 2
round(2.5) = 2 #it rounds to ceil
round(2.7) = 3
它用奇数四舍五入如下
round(5.1) = 5
round(5.5) = 6 #it rounds to floor
round(5.7) = 6
它用 x = 偶数将 X.5 舍入到地板,但用 X = 奇数舍入到 ceil
我想问一下这一轮的优势是什么?在我们的示例中我可以在哪里使用它?或者它的用途是什么?
解决方案
看起来如果它接近它会进入偶数选项。从文档https://docs.python.org/3/library/functions.html#round
返回小数点后四舍五入到 ndigits 精度的数字。如果 ndigits 被省略或为 None,则返回最接近其输入的整数。
对于支持 round() 的内置类型,值被四舍五入到最接近 10 的幂减去 ndigits 的倍数;如果两个倍数相等,则向偶数选择进行舍入(例如,round(0.5) 和 round(-0.5) 均为 0,round(1.5) 为 2)。任何整数值都对 ndigits 有效(正数、零或负数)。如果省略 ndigits 或 None,则返回值为整数。否则返回值的类型与数字相同。
对于一般的 Python 对象编号,将委托四舍五入到编号。圆形。
注意 浮点数的 round() 行为可能令人惊讶:例如,round(2.675, 2) 给出 2.67 而不是预期的 2.68。这不是错误:这是因为大多数小数部分不能完全表示为浮点数。有关详细信息,请参阅浮点算术:问题和限制。
推荐阅读
- sql-server - 到了收盘时间时,我如何关闭拍卖?
- pandas - 熊猫在时间戳中添加增量以打破关系,保留原始顺序
- ios - 从当前视图控制器打开相册(UIImagePickerController)
- sql - 如果您在 SQL Server 中的括号中的操作上调用舍入,是否有效?
- javascript - React/Next.js 如何在按钮单击时获取其他元素事件目标值
- javascript - Javascript 事件不适用于日期时间选择器
- sql - 根据第一列的不同值计算列的不同值
- sql-server - 如何将向量作为 SQL 函数的参数传递?
- javascript - 为什么我的两个 javascript 类实例不相同?
- android-studio - 选择一个有效的 JDK 目录