新闻资讯

新闻资讯 行业动态

关于python中的round()方法

编辑:008     时间:2020-02-11
有人会说,round()方法就是返回浮点数x的四舍五入值。
你看下面这些例子:
round(100.123,1)
round(-100.1)
round(1.75,1)
1
2
3
上面的运行结果:
100.1
-100
1.8
1
2
3
一切正常,返回浮点数的四舍五入呀。
那么你再看下面的例子:
round(1.25,1)
round(1.65,1)
1
2
运行结果:
1.2
1.6
1
2
大家可以试试看!!

在python2中,round()方法确实是 “四舍” ,却不是 “五入”。如果两端一样远,也就是碰到 “5” 时,则保留距离0远的一边。大于 “5” 的数,才 “入”。
而在python3中,round()方法也是 “四舍”,如果两端一样远,会保留到偶数一边。大于 “5” 的数才“入”。这也就是为什么上面的例子是1.2和1.6了。(本人在Python3中运行的)

原来如此,round()方法还分情况讨论的呀
这就完了吗?并没有!再看下面的例子:

round(2.675,2)
1
运行结果:

2.67
1
到这儿,小伙伴们就纳闷了,为啥?
无论在Python2中还是Python3中,得到的结果都应该是 “2.68”,可这里的结果为什么是 “2.67”?

莫慌~~
在机器中浮点数不一定能精确表达,机器做出了截断处理。那么在机器中保存的2.675这个数字就比实际数字要小那么一点点。这一点点就导致了它离2.67要更近一点点,所以保留两位小数时就近似到了2.67。

总结
round()方法并不只是简单的四舍五入,不仅要分Python2和Python3讨论,还要看数字在计算机中的存储!!
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

回复列表

相关推荐