所有小数位[Python]
我正在尝试创建一个E(数学常数)近似脚本。但它只给我15位小数。然后我添加了一个所有小数位[Python],python,python-3.x,decimal,Python,Python 3.x,Decimal,我正在尝试创建一个E(数学常数)近似脚本。但它只给我15位小数。然后我添加了一个Decimal()。有没有办法打印所有的小数。(如果没有,限制是多少?) 这是我的密码: from decimal import * e=1 x = input("Iterations:") x=int(x) while 1==1: e=1 + e/x x -= 1 if (x <= 0): break print(Decimal(e)) # only prints
Decimal()。有没有办法打印所有的小数。(如果没有,限制是多少?)
这是我的密码:
from decimal import *
e=1
x = input("Iterations:")
x=int(x)
while 1==1:
e=1 + e/x
x -= 1
if (x <= 0):
break
print(Decimal(e)) # only prints 50 decimal places
从十进制导入*
e=1
x=输入(“迭代:”)
x=int(x)
而1==1:
e=1+e/x
x-=1
如果(xTryfloat64
from。它们提供更高的精度将浮点结果转换为Decimal
当然是不够的。您必须使用Decimal
对象执行所有计算,如果您需要更高的精度,您必须告诉Decimal
In [73]: from decimal import Decimal, getcontext
In [74]: getcontext().prec = 70
In [75]: e = Decimal(1)
In [76]: x = Decimal(200000)
In [77]: while x>0:
...: e = Decimal(1)+e/x
...: x = x-Decimal(1)
In [78]: e
Out[78]: Decimal('2.718281828459045235360287471352662497757247093699959574966967627724076')
In [79]: str(e)[:52]
Out[79]: '2.71828182845904523536028747135266249775724709369995'
不,请参阅可能的副本。我的计算机加载10000位数字需要一段时间:D谢谢。