Python 如何将十进制值存储为变量
我正在写一个程序,它使用一个无限和来计算pi,非常快,22次迭代的结果是15位小数。但是,由于python的限制,这是可以显示的最大小数位数。因此,请尝试解决这个问题。我查看了互联网,发现其中包含有关python decimal类的信息 这似乎是我问题的完美解决方案,但是当尝试这种方法时,我无法添加数字并将其保存到变量中。在回到原始站点寻找答案后,我找不到任何涉及变量的内容。但是这一页太长了,我很容易就漏掉了一些东西 这是我的代码,没有小数部分也可以正常工作:Python 如何将十进制值存储为变量,python,python-3.x,infinite,pi,Python,Python 3.x,Infinite,Pi,我正在写一个程序,它使用一个无限和来计算pi,非常快,22次迭代的结果是15位小数。但是,由于python的限制,这是可以显示的最大小数位数。因此,请尝试解决这个问题。我查看了互联网,发现其中包含有关python decimal类的信息 这似乎是我问题的完美解决方案,但是当尝试这种方法时,我无法添加数字并将其保存到变量中。在回到原始站点寻找答案后,我找不到任何涉及变量的内容。但是这一页太长了,我很容易就漏掉了一些东西 这是我的代码,没有小数部分也可以正常工作: from decimal impo
from decimal import *
getcontext().prec = 30
n = 0
value = 1 / 2
while True:
n += 1
top = 1
bottom = 2 ** (2 * n + 1) * (2 * n + 1) * 2
for i in range(n):
top *= 2 * i + 1
if i != 0: bottom *= 2 * i + 2
value += Decimal(top) / Decimal(bottom)
print(value * 6)
编辑:
这是我收到的错误:
TypeError: unsupported operand type(s) for +=: 'float' and 'decimal.Decimal'
这是我第一次使用这个类,我不确定如何继续。是的,这是因为不支持向小数添加浮点数,请首先将
值(浮点数
)设为十进制
:
value = Decimal(1/2)
错误是明确的,告诉你这一点,说错误起源于哪里,是哪个操作符引起的,它得到了什么类型
请务必查看文档中为decimal
提供的,如果使用decimal,您可能会对它感兴趣。是的,这是因为不支持向decimal添加浮点数,请首先将value
(thefloat
)设为decimal
:
value = Decimal(1/2)
错误是明确的,告诉你这一点,说错误起源于哪里,是哪个操作符引起的,它得到了什么类型
请务必查看文档中提供的十进制数,如果使用十进制数,您可能会对它感兴趣。@StefanPochmann我已经更新了我的question@StefanPochmann我已经更新了我的问题谢谢你,事后看来它看起来很简单!该程序现在按预期运行。@Jean-Françoisfar我本来打算去的,但我不得不等10分钟,我现在想谢谢你,事后看来,这似乎很简单!这个程序现在按计划运行了。@Jean-Françoisfar我本来打算去的,但现在我不得不等10分钟左右