「Python」为什么Python里面,整除的结果会是小数?
原文:https://www.cnblogs.com/bEngi1/p/9155297.html
‘//’明明是整除,為什么結(jié)果不是整數(shù),而會出現(xiàn)小數(shù)?
首先,關(guān)于除法有三種概念:傳統(tǒng)除法、精確除法和地板除
1 2 3 4 5 6 7 #1、傳統(tǒng)除法:整數(shù)相除結(jié)果是整數(shù),浮點(diǎn)數(shù)相除結(jié)果是浮點(diǎn)數(shù) >>>4/2 2 >>>4.0/2 2.0 >>>4/2.0 2.0 #2、精確除法:無論操作數(shù)是整數(shù)還是浮點(diǎn)數(shù),得到的商總是真實(shí)結(jié)果,總是得到浮點(diǎn)數(shù) >>>4/2 2.0 >>>4.0/2 2.0 >>>4/2.0 2.0 #3、地板除:無論操作數(shù)是整數(shù)還是浮點(diǎn)數(shù),得到的商不保留浮點(diǎn)數(shù)的尾數(shù) >>>4//2 2 >>>4.0//2 2.0但是!這三種除法概念在Python2.6和Python3.0中又有不同
Python2.6中,‘/’按照以上三種除法概念把結(jié)果分得更細(xì):比如,整數(shù)相除結(jié)果為整數(shù),只要有一個(gè)浮點(diǎn)數(shù)結(jié)果就是浮點(diǎn)數(shù)(Python2.6:>>>3/2輸出1);地板除‘//’(和Python3.0一樣):操作數(shù)為整數(shù),整除結(jié)果為整數(shù)。否則操作數(shù)只要有一個(gè)浮點(diǎn)數(shù),結(jié)果就為小數(shù)(這里小數(shù)和浮點(diǎn)數(shù)有區(qū)別,就是這個(gè)區(qū)別能解釋開頭引入例題)
Python3.0中,‘/’保留小數(shù),這把‘/’的結(jié)果合并起來了,無論操作數(shù)是整數(shù)還是浮點(diǎn)數(shù),結(jié)果總都是浮點(diǎn)數(shù)(Python3.0:>>>3/2輸出1.5);地板除‘//’(和Python2.6一樣):同上
因此,現(xiàn)在,就能解釋開頭引入的例題了
#Python3.0下運(yùn)行的結(jié)果 >>>4.5/2 2.25>>>4.5//2 2.0第一個(gè)運(yùn)算得到的結(jié)果是保留尾數(shù)數(shù)值的浮點(diǎn)數(shù)(當(dāng)然也屬于小數(shù));而第二個(gè)運(yùn)算,不保留尾數(shù)數(shù)值,直接截?cái)鄡H保留其整數(shù)數(shù)值,但是因?yàn)橛幸粋€(gè)操作數(shù)是浮點(diǎn)數(shù),所以得到的結(jié)果是小數(shù),這個(gè)就是Python3.0對于‘//’的運(yùn)算規(guī)則
總結(jié)
以上是生活随笔為你收集整理的「Python」为什么Python里面,整除的结果会是小数?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nlp2-数学基础(信息论,概率论、词义
- 下一篇: Python中出现:AttributeE