我缺少什么:奇怪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