在C/C++語言對於整形數執行除法會進行地板除(舍去小數部分)。例如 int a=15/10; a的結果為1。
同樣的在Java中也是如此,所以兩個int型的數據相除需要返回一個浮點型數據的時候就需要強制類型轉換,例如 float a = (float)b/c ,其中b、c都是int型數據。
Python中分為3種除法:傳統除法、精確除法、地板除。
傳統除法
如果是整數除法則執行地板除,如果是浮點數除法則執行精確除法。
>>>1/2 0 >>>1.0/2.0 0.5
精確除法
除法總是會返回真實的商,不管操作數是整形還是浮點型。執行from __future__ import division 指令就可以做到這一點。
>>>from __future__ import division >>>1/2 0.5 >>>1.0/2.0 0.5
地板除
從Python2.2開始,增加了一個操作符 // ,以執行地板除://除法不管操作數為何種數值類型,總是會舍去小數部分,返回數字序列中比真正的商小的最接近的數字。
>>>1//2 0 >>>1.0//2 0 >>>-1//2.0 -1
內建函數divmod()
divmod (a,b),返回(a//b,a%b)
>>>divmod(1,2) (0,1) >>>divmod(3.14159,1.5) (2.0,0.4159000000000002) >>>5+6j//3+2j 2+0j >>>5+6j%3+2j -1+2j >>>divmod(5+6j,3+2j) ((2+0j),(-1+2j))