具有这种奇怪行为的round()函数是什么?

时间:2019-05-23 20:11:50

标签: python-3.x

我想四舍五入一些整数,但是遇到例如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

我想问一下这一回合的优势是什么?在示例中我可以在哪里使用它?或它的用途是什么?

1 个答案:

答案 0 :(得分:0)

看起来好像很接近,它进入了偶数选项。 从文档https://docs.python.org/3/library/functions.html#round

小数点后的返回数字四舍五入为n位精度。如果省略ndigits或为None,它将返回最接近其输入的整数。

对于支持round()的内置类型,将值四舍五入为10到幂减n位的最接近倍数;如果两个倍数相等地接近,则对偶数选择进行舍入(因此,例如,round(0.5)和round(-0.5)均为0,而round(1.5)为2)。任何整数值都对n位数字有效(正数,零或负数)。如果省略ndigits,则返回值为整数;否则为None。否则,返回值的类型与数字相同。

对于一般的Python对象编号,将代表四舍五入为数字。四舍五入

注意:float()的round()行为可能令人惊讶:例如,round(2.675,2)给出2.67,而不是预期的2.68。这不是错误:这是由于大多数小数部分不能完全表示为浮点数的结果。有关更多信息,请参见浮点算法:问题和限制。