round在python是什么意思_细说python中的round()方法
本篇文章,想聊一下Python中的round()方法。
這時(shí)候,有人就會(huì)說(shuō),round()方法嘛!簡(jiǎn)單!round() 方法就是返回浮點(diǎn)數(shù)x的四舍五入值。
你看下面這些例子:
round(100.123,1)
round(-100.1)
round(80.23456,3)
round(1.75,1)
上面的運(yùn)行結(jié)果:
100.1
-100
80.235
1.8
一切正常,返回浮點(diǎn)數(shù)的四舍五入呀。
那么你再看下面的例子:
round(1.25,1)
round(1.65,1)
運(yùn)行結(jié)果:
1.2
1.6
大家可以試試看!!
嗯??為啥不是1.3和1.7嘞?不是四舍五入的嗎?且聽(tīng)我分析~~
在python2中,round()方法確實(shí)是 “四舍” ,卻不是 “五入”。如果兩端一樣遠(yuǎn),也就是碰到 “5” 時(shí),則保留距離0遠(yuǎn)的一邊。大于 “5” 的數(shù),才 “入”。
而在python3中,round()方法也是 “四舍”,如果兩端一樣遠(yuǎn),會(huì)保留到偶數(shù)一邊。大于 “5” 的數(shù)才“入”。這也就是為什么上面的例子是1.2和1.6了。(本人在Python3中運(yùn)行的)
原來(lái)如此,round()方法還分情況討論的呀
這就完了嗎?并沒(méi)有!再看下面的例子:
round(2.675,2)
運(yùn)行結(jié)果:
2.67
到這兒,小伙伴們就納悶了,為啥?
無(wú)論在Python2中還是Python3中,得到的結(jié)果都應(yīng)該是 “2.68”,可這里的結(jié)果為什么是 “2.67”?
莫慌~~
在機(jī)器中浮點(diǎn)數(shù)不一定能精確表達(dá),機(jī)器做出了截?cái)嗵幚怼D敲丛跈C(jī)器中保存的2.675這個(gè)數(shù)字就比實(shí)際數(shù)字要小那么一點(diǎn)點(diǎn)。這一點(diǎn)點(diǎn)就導(dǎo)致了它離2.67要更近一點(diǎn)點(diǎn),所以保留兩位小數(shù)時(shí)就近似到了2.67。
不好理解?看下圖:
Decimal類(lèi)型可以非常精確地在計(jì)算機(jī)中存儲(chǔ),我們導(dǎo)入該模塊,查看“2.675”
在存儲(chǔ)時(shí),確實(shí)小那么一點(diǎn)點(diǎn),所以保留兩位小數(shù)時(shí),成了“2.67”。
總結(jié)
看來(lái),round()方法并不只是簡(jiǎn)單的四舍五入,不僅要分Python2和Python3討論,還要看數(shù)字在計(jì)算機(jī)中的存儲(chǔ)!!確實(shí)值得好好研究。
總結(jié)
以上是生活随笔為你收集整理的round在python是什么意思_细说python中的round()方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C语言基础指针知识点总结
- 下一篇: MATLAB视频截取和缩放