python提供了三種浮點值:內置的float與complex類型,以及標準庫的decimal.Decimal類型。
float類型存放雙精度的浮點數,具體取值范圍依賴于構建python的c編譯器,由于精度受限,進行相等性比較不可靠。
如果需要高精度,可使用decimal模塊的decimal.Decimal數,這種類型可以準確的表示循環小數,但是處理速度較慢,適合于財政計算。
簡單函數比較floatS是否相等:
defequal_float(a,b):
returnabs(a-b)<=sys.float_info.epsilon
其中sys.float_info.epsilon是機器可以區分出的兩個浮點數的最小區別
math模塊提供了許多可用于floatS的函數:
math.pi:常量3.1415926
math.pow(x,y):x的y次冪(浮點值)
使用math時先用importmath導入該模塊
十進制數字
decimal模塊可以提供固定的十進制數,精度可以自己定。要創建Decimal,要先用importdecimal導入模塊
十進制數是用decimal.Decimal()函數創建的,該函數可以接受一個整數或字符串作為參數,但不能以浮點數作參數。如果用字符串作為參數,可以使用簡單的十進制數表示或指數表示,另外,decimal.Decimal的精確表述方式可以可靠的進行相等性比較
(python3.1開始,使用decimal.Decimalfrom-float()函數將floats轉換為十進制數,以float型數作為參數,并返回與該float最為接近的decimal.Decimal)
以上內容為大家介紹了Python培訓之如何在python中打小數點,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。