1. 程式人生 > >Python中的除法 整除 非整除

Python中的除法 整除 非整除

在C/C++語言對於整形數執行除法會進行地板除(捨去小數部分)。例如 int a=15/10; a的結果為1。

同樣的在Java中也是如此,所以兩個int型的資料相除需要返回一個浮點型資料的時候就需要強制型別轉換,例如 float a = (float)b/c ,其中b、c都是int型資料。

Python中分為3種除法:傳統除法、精確除法、地板除。

傳統除法

如果是整數除法則執行地板除,如果是浮點數除法則執行精確除法。

  1. >>>1/2
  2. 0
  3. >>>1.0/2.0
  4. 0.5
精確除法

除法總是會返回真實的商,不管運算元是整形還是浮點型。執行from __future__ import division 指令就可以做到這一點。

  1. >>>from __future__ import division  
  2. >>>1/2
  3. 0.5
  4. >>>1.0/2.0
  5. 0.5
地板除

從Python2.2開始,增加了一個操作符 // ,以執行地板除://除法不管運算元為何種數值型別,總是會捨去小數部分,返回數字序列中比真正的商小的最接近的數字。

  1. >>>1//2
  2. 0
  3. >>>1.0//2
  4. 0
  5. >>>-1//2.0
  6. -1

內建函式divmod()
divmod (a,b),返回(a//b,a%b)

  1. >>>divmod(1,2)  
  2. (0
    ,1)  
  3. >>>divmod(3.14159,1.5)  
  4. (2.0,0.4159000000000002)  
  5. >>>5+6j//3+2j
  6. 2+0j
  7. >>>5+6j%3+2j
  8. -1+2j
  9. >>>divmod(5+6j,3+2j)  
  10. ((2+0j),(-1+2j))  
from: http://blog.csdn.net/sicofield/article/details/8613877