PYTHON3 中的虚假四舍五入:round()
创建时间: | 2017/12/5 17:08 |
作者: | CN_Simo |
标签: | python基础, round, 四舍五入 |
一、这不是一个BUG!
在使用 round() 的时候,发现
可以发现,有一些数字并没有真正的四舍五入!
这就很疑惑了,查阅资料发现,在python2中这还是正常的。
- python2 中对 round() 的定义为:在 10的负ndigits次方 的倍数 取离 number 最近的数字返回,如果存在两个倍数离number一样近,那么取远离0的
- python3 中对 round() 的定义为:在 10的负ndigits次方 的倍数 取离 number 最近的数字返回,如果存在两个倍数离number一样近,那么取偶数
官方文档中 round() 的说法:【参考链接】
这并不是一个BUG!
我还是想不通为什么 round 要做成这样的,但毫无疑问这是一个坑!
二、精确的四舍五入方法总结:【参考链接】
法1:
法2:
还有在 python3 中 '/' 就是普通的除,整除是 '//'
我的博客即将搬运同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan