2016-03-01 124 views
0

在Python中,當x = 27時,Exp(-x x)爲〜10^-317。當x> 27時,Exp [-x x]在Python中變爲零。但是我將有x從0到50甚至更多的域。那麼在x> 27之後,我怎樣才能阻止Python將指數函數舍入爲零?它甚至有可能做到這一點?Python:允許精度很小的數字?

謝謝 --Raj

回答

0

要計算非常大的數字蟒蛇你可以嘗試使用gmpy2包這樣的:

import numpy as np 
from gmpy2 import mpz 
n = 50 
print pow(mpz(np.e),n*n) 
0

的原生的Python浮動類型使用標準C double作爲基礎值。您已達到IEEE 64位浮點類型的限制。

您將需要使用不同的數據類型。我維護支持任意精度整數(mpz),rational(mpq),real(mpfr)和complex(mpc)類型的gmpy2庫。該庫以C語言編寫,並使用GMP,MPFR和MPC庫。

>>> import gmpy2 
>>> gmpy2.exp(-50*50) 
mpfr('1.8356726691621567e-1086') 
>>> 

mpmath庫是另一個不錯的選擇。