Python中非常奇怪的数字舍入

时间:2018-03-12 13:34:19

标签: python python-3.x rounding

您可能会将此问题视为Python Rounding Inconsistently的副本。

但是我仍然认为有理由用它强调这种Python行为。

在使用Python为C程序准备测试数据时,我发现了Python的这种奇怪行为。四舍五入的四分之一'成对出来!

有人可以提供解释吗?

正:

>>> round (0.5)
0
>>> round (1.5)
2
>>> round (2.5)
2
>>> round (3.5)
4
>>> round (4.5)
4
>>> round (5.5)
6
>>> round (6.5)
6

阴性:

>>> round(-0.5)
0
>>> round(-1.5)
-2
>>> round(-2.5)
-2
>>> round(-3.5)
-4
>>> round(-4.5)
-4
>>> round(-5.5)
-6
>>> round(-6.5)
-6
>>> round(-7.5)
-8
>>> round(-8.5)
-8

1 个答案:

答案 0 :(得分:1)

这是一种非常常见的舍入方法,称为 银行家舍入 :如果一个数字在中间,它会转到下一个甚至数字,而不是 down ,正如标准舍入所做的那样。

这有助于减少舍入误差的累积;使用 Banker's Rounding ,错误有更好的机会平衡许多交易,而不是连续累积。