PYTHON3 中的虚假四舍五入:round()

Posted CN_Simo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PYTHON3 中的虚假四舍五入:round()相关的知识,希望对你有一定的参考价值。

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

以上是关于PYTHON3 中的虚假四舍五入:round()的主要内容,如果未能解决你的问题,请参考以下文章

round四舍五入

python中小数点后取2位(四舍五入)以及取2位(四舍五不入)

Python 3.x 舍入行为

oracle中的round()方法的用法

round()round函数返回啥值?

python 数字的四舍五入的问题