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
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值