python——decimal模塊

專門處理浮點型數字的模塊,其精度高於python的浮點數類型。

0.1+0.1+0.1
#輸出:0.30000000000000004  python浮點型數不能精確存儲

常用類和方法

decimal.Decimal(builtins.object)
#輸入可以是int,str、tuple或其他Decimal對象。若無輸入,返回Decimal('0')
decimal.getcontext()
#Context(prec=28, rounding=ROUND_HALF_EVEN, Emin=-999999, Emax=999999, capitals=1, clamp=0, flags=[Inexact, FloatOperation, Rounded], traps=[InvalidOperation, DivisionByZero, Overflow])
#返回decimal類型的一些全局設置。最常用的是prec,表示精度,默認28。

示例

Decimal
import decimal
a=decimal.Decimal('0.01')
a+a+a
#Decimal('0.03')
decimal.Decimal(0.01)
#Decimal('0.01000000000000000020816681711721685132943093776702880859375')
#若直接輸入浮點型,精度會出問題,需要轉爲str類型輸入
getcontext().prec
import decimal
decimal.getcontext().prec = 4 
#設置小數點後保留4位
decimal.Decimal('0.123000')
#輸出:Decimal('0.123000')   #精度設置不能影響固定輸入
decimal.Decimal('0.123')*decimal.Decimal('0.987')
#輸出:Decimal('0.1214')   
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章