0

我正在研究一个生成无限数的项目,例如 PI(3.141...等)或欧拉数(2.718...等)。它询问用户他们想要生成多少位数字,然后运行一个算法来准确地生成那么多位数字。

对算法进行编码很顺利,它们可以按预期工作。现在我正在尝试实现一种方法来控制打印的位数。我正在使用十进制模块中的getcontext()函数来执行此操作。以欧拉数函数为例。

2.7182818284590452353602874713527 <---(欧拉数供参考)

from math import factorial
from decimal import getcontext, Decimal
e = 0
def euler_gen:
  for n in range(0,100):
    n = factorial(n)
    e += 1/n

    getcontext().prec = 5
    print(Decimal(e))

预期的输出是2.7182。而是打印52位数字。我是否滥用了该功能,或者您是否会推荐其他解决方案来解决此问题?

4

0 回答 0