您可能会将此问题视为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
答案 0 :(得分:1)
这是一种非常常见的舍入方法,称为 银行家舍入 :如果一个数字在中间,它会转到下一个甚至数字,而不是 down ,正如标准舍入所做的那样。
这有助于减少舍入误差的累积;使用 Banker's Rounding ,错误有更好的机会平衡许多交易,而不是连续累积。