python 如何设置 精度

python里整数已经是任意长度的,但浮点数有地方设置精度吗?

比如 1.0/3 我需要38位精度,怎么设?

'%10.50f'%(1.0/3) 这没用的,我要内部计算精度,不是显示位数.

用1E60/3 结果错误
用1000000000000000000000000000000/3.0 这样的 可以 但要转换,如果要求log(4542)这样的就不好转换了

作者: qqjue   发布时间: 2011-05-13

decimal module

>>> from decimal import *
>>> getcontext().prec = 6
>>> Decimal(1) / Decimal(7)
Decimal('0.142857')
>>> getcontext().prec = 28
>>> Decimal(1) / Decimal(7)
Decimal('0.1428571428571428571428571429')

如果有更高的要求或者更加复杂的计算 可以考虑扩展库

作者: ccporxy   发布时间: 2011-05-13