银行家舍入法(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” 时,银行家舍入法的判断逻辑如下:
- 看5的后面:如果5后面还有任何非零的数字,则一律进位。例:将 1.25001 保留两位小数 → 看第三位小数后是 501,有非零数字,所以进位为 1.26。
- 看5的前面:如果5后面全部是零(即5是最后一位有效数字),则看5前面一位数字(即要保留的最后一位):如果前一位是 奇数,则进位(使其变为偶数)。如果前一位是 偶数,则舍去(保持其为偶数)。例:将 1.2350 保留两位小数 → 第三位是5,后面是0,看第二位 3 (奇数),所以进位为 1.24。例:将 1.2450 保留两位小数 → 第三位是5,后面是0,看第二位 4 (偶数),所以舍去为 1.24。
在编程中的实现
Python:round() 函数使用的就是银行家舍入法。
round(1.5) # 输出 2 round(2.5) # 输出 2 (因为2是偶数)

