浮点数python默认是17位精度,也就是小数点后16位(16位以后的全部四舍五入了),虽然有16位,但是这个精度越往后越不准.
如果有特殊需求,需要更多的精度,可以用decimal模块,通过更改其里面getcontext()函数里面的prec参数,来决定你想要的浮点数精度。
from decimal import Decimalfrom decimal import getcontextwork_context = getcontext()work_context.prec = 100print(work_context)'''Context(prec=100, rounding=ROUND_HALF_EVEN, Emin=-999999, Emax=999999, capitals=1, clamp=0, flags=[], traps=[InvalidOperation, DivisionByZero, Overflow])'''d = Decimal(1) / Decimal(3)print(type(d), d)""" 0.3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333"""