码迷,mamicode.com
首页 > 编程语言 > 详细

用decimal模块增加python的浮点数精度

时间:2018-11-03 23:13:03      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:invalid   none   div   span   opera   pre   text   style   splay   

浮点数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的浮点数精度

标签:invalid   none   div   span   opera   pre   text   style   splay   

原文地址:https://www.cnblogs.com/lshedward/p/9902193.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!