decimal模塊為正確舍入十進(jìn)制浮點(diǎn)運(yùn)算提供了支持,相比內(nèi)置的浮點(diǎn)類型float,它能更加精確的控制精度,能夠?yàn)榫纫筝^高的金融等領(lǐng)域提供支持。
decimal在一個(gè)獨(dú)立的context下工作,可以使用getcontext()查看當(dāng)前上下文,如下所示:
>>fromdecimalimport*
>>>getcontext()
Context(prec=28,rounding=ROUND_HALF_EVEN,Emin=-999999,Emax=999999,capitals=1,clamp=0,flags=[],traps=[InvalidOperation,DivisionByZero,Overflow])
從上面的結(jié)果中我們可以看到prec=28,這就是默認(rèn)的精度,我們可以使用getcontext().prec=xxx來重新設(shè)置精度。接下來通過具體示例看一下。
基本運(yùn)算
importdecimald1=decimal.Decimal(1.1)d2=decimal.Decimal(9.9)print(d1+d2)print(d1-d2)print(d1*d2)print(d1/d2)
執(zhí)行結(jié)果:
11.00000000000000044408920985
-8.800000000000000266453525910
10.89000000000000127009514017
0.1111111111111111160952773272
上面結(jié)果是用了默認(rèn)精度,我們重新設(shè)置下精度再來看一下:
importdecimaldecimal.getcontext().prec=2d1=decimal.Decimal(1.1)d2=decimal.Decimal(9.9)print(d1+d2)print(d1-d2)print(d1*d2)print(d1/d2)
執(zhí)行結(jié)果:
11
-8.8
11
0.11
以上內(nèi)容為大家介紹了Pythondecimal模塊,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。