2013-01-14 120 views
1

函數返回list,其中包含float值。如果我繪製這個列表,我看到一些float值等於-1.#IND。我還檢查了這些-1.#IND值的類型。他們也是float類型。 但是我怎樣才能理解這個-1.#IND值?他們代表什麼或代表什麼?浮點值等於-1。#IND

回答

3

-1.#IND意味着不確定,一個浮點方程的結果,沒有解決方案。在其他平臺上,您將獲得NaN,這意味着「不是數字」,-1.#IND特定於Windows。在Linux上的Python 2.5上,我得到:

>>> 1e300 * 1e300 * 0 
-nan 

在Windows平臺上,您只能在python版本2.5及之前的版本中找到它。 float()代碼在python 2.6中得到了改進,並一貫使用float('nan')獲得這樣的結果;主要是因爲沒有辦法把1.#INF-1.#IND回再次實際float()實例:

>>> repr(inf) 
'1.#INF' 
>>> float(_) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ValueError: invalid literal for float(): 1.#INF 
>>> repr(nan) 
'-1.#IND' 
>>> float(_) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ValueError: invalid literal for float(): -1.#IND 

在2.6及更高版本這已全部清理並取得一致:

>>> 1e300 * 1e300 * 0 
nan 
>>> 1e300 * 1e300 
inf 
>>> 1e300 * 1e300 * -1 
-inf