python计算中需要许多小数位

时间:2013-08-15 15:40:56

标签: python sum decimal

我需要准确地总结一长串十进制数,其精度至少为50位小数。我还需要能够打印一些款项。我真正需要的是无限小数位。

我不知道如何做到这一点。浮点数应该转换为字符串然后用Decimal模块打印出来吗?但我对理解模块或其局限性没有成功。如果有人可以帮我解决这个问题,并且/或者在Python中提示我关于十进制模块或浮点数的一些有用的文章,那对我和其他人来说真的很有帮助。

我的尝试是:

from __future__ import division
from decimal import *
getcontext().prec = 160

summan = 0
lista = [1/4,1/3,1/5,1/6,1/7,1/9,1/10,1/11]

for x in lista:
    summan += x
    print Decimal(str(summan))

1 个答案:

答案 0 :(得分:0)

看看at the documentation ...对于高精度的分数除法,您可以执行以下操作:

from decimal import *
getcontext().prec = 160

summan = 0
lista = ['1/4','1/3','1/5','1/6','1/7','1/9','1/10','1/11']

for x in lista:
    den, num = x.split('/')
    print Decimal(den) / Decimal(num)