Python 需要将pi计算到30位,但在第15位之后,它们都会失败

Python 需要将pi计算到30位,但在第15位之后,它们都会失败,python,while-loop,series,Python,While Loop,Series,我在python中遇到了一个系列计算的问题,它们都在第15位之后失败。我用的是天篷 例如 3.1415926535897932384626433832795202841971693993751实际pi 3.14159265358979444826559301873203366994857788085938我的结果 3.1415926535897932384626433832795028841971xxxxxxxxx问题 方程16arctan(1/5)-4arctan(1/239): 机器的# 毫

我在python中遇到了一个系列计算的问题,它们都在第15位之后失败。我用的是天篷

例如

3.1415926535897932384626433832795202841971693993751实际pi 3.14159265358979444826559301873203366994857788085938我的结果 3.1415926535897932384626433832795028841971xxxxxxxxx问题

方程16arctan(1/5)-4arctan(1/239):

机器的
#
毫米=0。
totalm1=0。

而mm浮点数只有大约15位精度。如果需要更多有效数字,请使用任意精度的数学库。内置模块可能是合适的,或者您可以尝试,它似乎有更多的功能

使用
decimal
模块计算2的平方根的示例:

>>> import decimal
>>> decimal.getcontext().prec = 50 # Compute with 50 digits of precision
>>> decimal.Decimal('2') ** decimal.Decimal('0.5')
Decimal('1.4142135623730950488016887242096980785696718753769')

我如何使用这样的东西?@user3236112:这个问题最好由相关文档来回答。简而言之,答案过于简单:创建任意精度的字符串初始化数字,然后像往常一样对它们进行数学运算。如果有什么让我更困惑的事情发生的话,请考虑一下,我刚刚用python开始了我的课程,才3周ago@user3236112这是课堂作业吗?看起来很奇怪,他们这么快就给你一个要求任意精度数学的作业。@user3236112:当然,给你。不过,在你尝试用任意精度的数学做作业之前,我会仔细地重读这道题。检查你是否应该做其他事情。
>>> import decimal
>>> decimal.getcontext().prec = 50 # Compute with 50 digits of precision
>>> decimal.Decimal('2') ** decimal.Decimal('0.5')
Decimal('1.4142135623730950488016887242096980785696718753769')