用decimal模塊增加python的浮點數精度


浮點數python默認是17位精度,也就是小數點后16位(16位以后的全部四舍五入了),雖然有16位,但是這個精度越往后越不准.

如果有特殊需求,需要更多的精度,可以用decimal模塊,通過更改其里面getcontext()函數里面的prec參數,來決定你想要的浮點數精度。

 

from decimal import Decimal
from decimal import getcontext

work_context = getcontext()
work_context.prec = 100
print(work_context)
'''
Context(prec=100, rounding=ROUND_HALF_EVEN, Emin=-999999, Emax=999999, capitals=1, clamp=0, flags=[], traps=[InvalidOperation, DivisionByZero, Overflow])
<class 'decimal.Decimal'>
'''

d = Decimal(1) / Decimal(3)
print(type(d), d)

"""
 0.3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333

"""

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM