python2和python3中round()函数的区别

round()

round() 函数返回浮点数x的四舍五入值。

print(round(70.23))
print(round(70.883))
print(round(5.812, 1))
print(round(45.268, 2))
print(round(30.000023, 3))
print(round(-30.000095, 3))

# 打印结果
70
71
5.8
45.27
30.0
-30.0

但是,在python3中round()函数做个改动,所以现在用python2和python3来求round(2.5)会有不同的结果。python2给出的结果更接近大家通常的认识,下面是python2和3对round()函数的处理:

python2把x四舍五入为远离0的最近倍数,如round(0.5)=1, round(-0.5)=-1;
python3则会把x四舍五入为最近的偶数倍数,如round(0.5)=0, round(1.5)=2.0, round(2.5)=2.0

# python3.6运算结果
>>> round(-1.5)
-2
>>> 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

python3则会把x四舍五入为最近的偶数倍数,这个只说明了要四舍五入成整数的。那有小数位的呢,怎么处理?
python3中round()对浮点数的取舍遵循的是四舍六入五平分 ,“五平分”就是根据取舍的位数前的小数奇偶性来判断,奇偶平分。奇数则舍弃,偶数则加一。(它的作用是让统计数据更公平科学,降低舍入的误差。)
例如:

# python3.6运算结果
>>> round(2.135, 2)  # 5的前一位是3,为奇数,舍弃
2.13
>>> round(2.145, 2)  # 5的前一位是4,为偶数,进一
2.15

# 如果5后面还有数字,直接进一
>>> round(2.13522, 2)
2.14
>>> round(2.14522, 2)
2.15
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页