2017-06-21 85 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