1. 程式人生 > >python資料型別之浮點型

python資料型別之浮點型

python提供了三種浮點值:內建的float與complex型別,以及標準庫的decimal.Decimal型別。
float型別存放雙精度的浮點數,具體取值範圍依賴於構建python的c編譯器,由於精度受限,進行相等性比較不可靠。
如果需要高精度,可使用decimal模組的decimal.Decimal數,這種型別可以準確的表示迴圈小數,但是處理速度較慢,適合於財政計算。
簡單函式比較floatS是否相等:
def equal_float(a,b):
return abs(a-b)<=sys.float_info.epsilon
其中sys.float_info.epsilon是機器可以區分出的兩個浮點數的最小區別
math模組提供了許多可用於floatS的函式:
math.pi:常量3.1415926
math.pow(x,y):x的y次冪(浮點值)
……………….
使用math時先用import math匯入該模組

十進位制數字
decimal模組可以提供固定的十進位制數,精度可以自己定。要建立Decimal,要先用import decimal匯入模組
十進位制數是用decimal.Decimal()函式建立的,該函式可以接受一個整數或字串作為引數,但不能以浮點數作引數。如果用字串作為引數,可以使用簡單的十進位制數表示或指數表示,另外,decimal.Decimal的精確表述方式可以可靠的進行相等性比較
(python3.1開始,使用decimal.Decimal from-float()函式將floats轉換為十進位制數,以float型數作為引數,並返回與該float最為接近的decimal.Decimal)