2017-06-21 59 views
0

我有有一些複雜的數學運算導致的結果極少量像0.000028等應用程序現在,如果我在JavaScript執行一些計算像(1073741824分之29631)它給我導致如0.000027596019208431244而在用數據類型float蟒相同的計算給我0.0。我怎樣才能提高小數點的Python中獲取高達Python中的精度n個小數點結果

+2

使用'decimal':https://docs.python.org/3.6/library/decimal.html,其中任意精度可以設置。 – jOOsko

回答

5

的問題不是缺少小數點,這是在Python 2整數除法產生一個整數結果。這意味着,1073741824分之29631收益0而不是浮動你期望。要解決這個問題,你可以使用一個浮動的操作數:

>>> 29631.0/1073741824 
2.7596019208431244e-05 

changed in Python 3,其中除法運算做意料之中的事情。您可以使用from __future__進口turn on the new behavior in Python 2

>>> from __future__ import division 
>>> 29631/1073741824 
2.7596019208431244e-05 
-1

如果你正在使用Python 3.x的結果的數量,你應該試試這個:

print(str(float(29631)/1073741824)) 
+1

在Python 3不應該是必要的,因爲'29631/1073741824'將計算預期的(浮動)的結果。 – user4815162342