Python小數/浮點數(float)類型詳解


Python一對一答疑,幫助有志青年!使用QQ在線輔導,哪里不懂問哪里,整個過程都是一對一,學習更有針對性。和作者直接交流,不但提升技能,還提升 Level;當你決定加入我們,你已然超越了 90% 的程序員。猛擊這里了解詳情。

在編程語言中,小數通常以浮點數的形式存儲。浮點數和定點數是相對的:小數在存儲過程中如果小數點發生移動,就稱為浮點數;如果小數點不動,就稱為定點數。

Python 中的小數有兩種書寫形式:

1) 十進制形式

這種就是我們平時看到的小數形式,例如 34.6、346.0、0.346。

書寫小數時必須包含一個小數點,否則會被 Python 當作整數處理。

2) 指數形式

Python 小數的指數形式的寫法為:

aEn 或 aen

a 為尾數部分,是一個十進制數;n 為指數部分,是一個十進制整數;Ee是固定的字符,用於分割尾數部分和指數部分。整個表達式等價於 a×10n

指數形式的小數舉例:

  • 2.1E5 = 2.1×105,其中 2.1 是尾數,5 是指數。
  • 3.7E-2 = 3.7×10-2,其中 3.7 是尾數,-2 是指數。
  • 0.5E7 = 0.5×107,其中 0.5 是尾數,7 是指數。


注意,只要寫成指數形式就是小數,即使它的最終值看起來像一個整數。例如 14E3 等價於 14000,但 14E3 是一個小數。

Python 只有一種小數類型,就是 float。C語言有兩種小數類型,分別是 float 和 double:float 能容納的小數范圍比較小,double 能容納的小數范圍比較大。

【實例】小數在 Python 中的使用:

f1 = 12.5
print("f1Value: ", f1)
print("f1Type: ", type(f1))

f2 = 0.34557808421257003
print("f2Value: ", f2)
print("f2Type: ", type(f2))

f3 = 0.0000000000000000000000000847
print("f3Value: ", f3)
print("f3Type: ", type(f3))

f4 = 345679745132456787324523453.45006
print("f4Value: ", f4)
print("f4Type: ", type(f4))

f5 = 12e4
print("f5Value: ", f5)
print("f5Type: ", type(f5))

f6 = 12.3 * 0.1
print("f6Value: ", f6)
print("f6Type: ", type(f6))

運行結果:

f1Value:  12.5
f1Type:  <class 'float'>
f2Value:  0.34557808421257
f2Type:  <class 'float'>
f3Value:  8.47e-26
f3Type:  <class 'float'>
f4Value:  3.456797451324568e+26
f4Type:  <class 'float'>
f5Value:  120000.0
f5Type:  <class 'float'>
f6Value:  1.2300000000000002
f6Type:  <class 'float'>

從運行結果可以看出,Python 能容納極小和極大的浮點數。print 在輸出浮點數時,會根據浮點數的長度和大小適當的舍去一部分數字,或者采用科學計數法。

f5 的值是 120000,但是它依然是小數類型,而不是整數類型。

讓人奇怪的是 f6,12.3*0.1的計算結果很明顯是 1.23,但是 print 的輸出卻不精確。這是因為小數在內存中是以二進制形式存儲的,小數點后面的部分在轉換成二進制時很有可能是一串無限循環的數字,無論如何都不能精確表示,所以小數的計算結果一般都是不精確的。

到此這篇關於Python小數/浮點數(float)類型的文章就介紹到這了,更多Python技術和學習資料進入博主的Python圈子觀看和下載。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM