Python中round四舍五入成偶的问题
今天在编写代码的时候发现了一个round的小问题,我对1.5使用round()得到的是2,但是我对2.5使用round()的时候同样也得到的是2,经过我搜索发现,python3中round()会对1.5 2.5这类到相邻整数距离相同的数字取偶数整数,而不是按照大家正常认为的四舍五入。
在Python2和Python3中对于round()函数的取值的的区别
例:
- Python2中对round()函数的取值
1 | print(round(24.5)) |
- 当Python中对同样的数进行round()函数的取值
1 | print(round(24.5)) |
在Python2中和Python3中对同一个数进行round()取值时,结果却不同
很简单,在Python2中对于round()取值就是数学概念进行四舍五入
下面是Python3中对不同数的进行round()函数的取值
1 | print(round(22.5)) |
当对22.5取值是舍
当对23.5取值是进
当对22.51取值是进
这样就可以证明了:
①.当被修约的值为5时,如果他前面的数为偶数且被修约数的后面没有数时则舍弃;
②.当被修约的值为5时,如果他前面的数为奇数时则进位;
③.当被修约的值为5时,如果他前面的数为偶数时且被修约数的后面还有数时,则进位。