银行家舍入法(Banker's Rounding)

它的核心规则是:四舍六入五成双

为了方便您快速理解,下表展示了它与普通“四舍五入”的区别:

普通四舍五入

尾数≤4舍去,≥5进位。

1.15 → 

1.2

1.25 → 

1.3

简单直观,但统计时易造成系统性偏差。

银行家舍入法

四舍六入五成双

• 5后

有非零数字

,则进位。

• 5后

全为零

,则看5前面一位数字,

奇进偶不进

1.15 → 

1.2

 (1是

奇数

,进位)

1.25 → 

1.2

 (2是

偶数

,舍去)

1.2501 → 

1.3

 (5后有非零数字,进位)

减少在大量数据处理时的累计误差,更公平。

规则详解

当需要保留的位数后,第一个数字是 “5” 时,银行家舍入法的判断逻辑如下:

  1. 看5的后面:如果5后面还有任何非零的数字,则一律进位。例:将 1.25001 保留两位小数 → 看第三位小数后是 501,有非零数字,所以进位为 1.26。
  2. 看5的前面:如果5后面全部是零(即5是最后一位有效数字),则看5前面一位数字(即要保留的最后一位):如果前一位是 奇数,则进位(使其变为偶数)。如果前一位是 偶数,则舍去(保持其为偶数)。例:将 1.2350 保留两位小数 → 第三位是5,后面是0,看第二位 3 (奇数),所以进位为 1.24。例:将 1.2450 保留两位小数 → 第三位是5,后面是0,看第二位 4 (偶数),所以舍去为 1.24。

在编程中的实现

Pythonround() 函数使用的就是银行家舍入法。

round(1.5)  # 输出 2
round(2.5)  # 输出 2 (因为2是偶数)
全部评论

相关推荐

01-14 16:23
广州商学院 Java
双非后端失败第N人:如果准备好了可以直接投字节,字节是最不看学历的,只要想面,大概率都能给你约面。
双非有机会进大厂吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务