Numpy float64 vs Python float

时间:2014-11-24 05:43:57

标签: python numpy floating-point

我正在与Pandas read_csv函数中的一些浮点问题作斗争。在我的调查中,我发现了这个:

In [15]: a = 5.9975

In [16]: a
Out[16]: 5.9975

In [17]: np.float64(a)
Out[17]: 5.9974999999999996

为什么内置float的Python和Python的np.float64类型给出不同的结果?我以为他们都是C ++双打?

1 个答案:

答案 0 :(得分:20)

>>> numpy.float64(5.9975).hex()
'0x1.7fd70a3d70a3dp+2'
>>> (5.9975).hex()
'0x1.7fd70a3d70a3dp+2'

它们是相同的数字。不同的是他们的代表性; Python本机类​​型使用“理智”表示,而NumPy类型使用精确表示。