用decimal模塊增加python的浮點數精度
阿新 • • 發佈:2018-11-04
contex port ali span div als style col 參數
浮點數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 """
用decimal模塊增加python的浮點數精度