[英]All decimal places [Python]
我正在嘗試創建一個 E(數學常數)近似腳本。 但它只給我 15 個小數位。 然后我添加了一個Decimal()
,它增加了小數位數,但仍然限制為 50 個小數位。 有沒有辦法打印所有小數。 (如果沒有,限制是多少?)
這是我的代碼:
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
當然,將浮點結果轉換為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'
從numpy嘗試float64
。 它們提供更高的精度
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.