在編程語言中,小數通常以浮點數的形式存儲。浮點數和定點數是相對的:小數在存儲過程中如果小數點發生移動,就稱為浮點數;如果小數點不動,就稱為定點數。
Python 中的小數有兩種書寫形式:
1) 十進制形式
這種就是我們平時看到的小數形式,例如 34.6、346.0、0.346。
書寫小數時必須包含一個小數點,否則會被 Python 當作整數處理。
2) 指數形式
Python 小數的指數形式的寫法為:
aEn 或 aen
a 為尾數部分,是一個十進制數;n 為指數部分,是一個十進制整數;E
或e
是固定的字符,用於分割尾數部分和指數部分。整個表達式等價於 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圈子觀看和下載。