Python round 函数并非严格的遵循四舍五入,而是采用银行家舍入法
口诀为:四舍六入五考虑,五后非空就进一,五后为空看奇偶,五前为偶应舍去,五前为奇要进一
# 四舍
In [4]: a = 1.46
In [5]: f"a : {a}, round(a) : {round(a)}"
Out[5]: 'a : 1.46, round(a) : 1'
# 六入
In [8]: b = 1.63
In [9]: f"b : {b }, round(b) : {round(b)}"
Out[9]: 'b : 1.63, round(b) : 2'
## 五考虑
# 五后非空就进一
In [10]: c = 1.54
In [11]: f"c : {c}, round(c) : {round(c)}"
Out[11]: 'c : 1.54, round(c) : 2'
## 五后为空,看奇、偶
# 五「前」为「偶」应舍去
In [12]: d = 2.5
In [13]: f"d : {d}, round(d) : {round(d)}"
Out[13]: 'd : 2.5, round(d) : 2'
# 五「前」为「奇」要进一
In [14]: e = 3.5
In [15]: f"e : {e}, round(e) : {round(e)}"
Out[15]: 'e : 3.5, round(e) : 4'