我缺少什麼:奇怪numpy.float96行爲
In [66]: import numpy as np
In [67]: np.float(7.0/8)
Out[67]: 0.875 #OK
In [68]: np.float32(7.0/8)
Out[68]: 0.875 #OK
In [69]: np.float96(7.0/8)
Out[69]: -2.6815615859885194e+154 #WTF
In [70]: sys.version
Out[70]: '2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)]'
編輯。 在Cygwin上面的代碼工作確定:
$ python
Python 2.5.2 (r252:60911, Dec 2 2008, 09:26:14)
[GCC 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> np.float(7.0/8)
0.875
>>> np.float96(7.0/8)
0.875
對於完整性,我檢查這個代碼在普通的Python(未IPython中):
C:\temp>python
Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> np.float(7.0/8)
0.875
>>> np.float96(7.0/8)
-2.6815615859885194e+154
>>>
編輯
我看到了三個錯誤關於Numpy的trac站點的報告(976,902和884),但這個似乎與字符串表示沒有關係。所以我開了一個新的bug(1263)。將更新這裏的進步
我不能在linux(ubuntu 64位)上重現這個,因爲它沒有'float96',只有'float128',所以這個問題可能是Windows特定的。 – 2009-10-14 12:41:11
無法在Mac雪豹上重現,原因相同。 – 2009-10-14 12:56:37
我希望看到bug報告的結果:) – Nope 2009-10-15 17:08:54