簡體   English   中英

所有小數位 [Python]

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM