【廖雪峰python入門筆記】整數和浮點數

Datawhale發表於2018-07-05

1. 區分整數和浮點數的原因

Python的整數運算結果仍然是整數,浮點數運算結果仍然是浮點數。

整數和浮點數混合運算的結果則變成了浮點數。

1 + 2.0 # ==> 浮點數 3.0

為什麼要區分整數運算和浮點數運算呢?這是因為整數運算的結果永遠是精確的,而浮點數運算的結果不一定精確,因為計算機記憶體再大,也無法精確表示出無限迴圈小數,比如 0.1 換成二進位制表示就是無限迴圈小數。

那整數的除法運算遇到除不盡的時候,結果難道不是浮點數嗎?我們來試一下:

11 / 4 # ==> 2

令很多初學者驚訝的是,Python的整數除法,即使除不盡,結果仍然是整數,餘數直接被扔掉。不過,Python提供了一個求餘的運算 % 可以計算餘數:

11 % 4 # ==> 3

2. 解決涉及整數作精確計算的問題

如果我們要計算 11 / 4 的精確結果,按照“整數和浮點數混合運算的結果是浮點數”的法則,把兩個數中的一個變成浮點數再運算就沒問題了:

11.0 / 4 # ==> 2.75

所以我們再程式設計計算時,常常用1.0*來確保結果保留小數

相關文章