Python中非常奇怪的数字舍入

2024-04-19 22:42:34 发布

您现在位置:Python中文网/ 问答频道 /正文

你可以把这个问题看作是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

Tags: 程序rounding测试数据复制品理由round阴性inconsistently
1条回答
网友
1楼 · 发布于 2024-04-19 22:42:34

这是一种非常常见的四舍五入方法,称为银行家四舍五入:如果一个数字正好在中间,它将四舍五入到下一个偶数,而不是像标准四舍五入那样向下。你知道吗

这有助于减少舍入误差的累积;使用银行家舍入,误差有更好的机会在许多交易中均衡,而不是连续累积。你知道吗

相关问题 更多 >