Python中round四舍五入成偶的问题 | StriveZs的博客

Python中round四舍五入成偶的问题

Python中round四舍五入成偶的问题

今天在编写代码的时候发现了一个round的小问题,我对1.5使用round()得到的是2,但是我对2.5使用round()的时候同样也得到的是2,经过我搜索发现,python3中round()会对1.5 2.5这类到相邻整数距离相同的数字取偶数整数,而不是按照大家正常认为的四舍五入。

在Python2和Python3中对于round()函数的取值的的区别

例:

  1. Python2中对round()函数的取值
1
2
3
4
print(round(24.5))
输出结果:

25
  1. 当Python中对同样的数进行round()函数的取值
1
2
3
4
print(round(24.5))
输出结果:

24

在Python2中和Python3中对同一个数进行round()取值时,结果却不同

很简单,在Python2中对于round()取值就是数学概念进行四舍五入

下面是Python3中对不同数的进行round()函数的取值

1
2
3
4
5
6
7
8
9
print(round(22.5))
print(round(23.5))
print(round(22.51))

输出结果:

22
24
23

当对22.5取值是舍

当对23.5取值是进

当对22.51取值是进

这样就可以证明了:

①.当被修约的值为5时,如果他前面的数为偶数且被修约数的后面没有数时则舍弃;

②.当被修约的值为5时,如果他前面的数为奇数时则进位;

③.当被修约的值为5时,如果他前面的数为偶数时且被修约数的后面还有数时,则进位。

StriveZs wechat
Hobby lead  creation, technology change world.