我正在与 Pandas read_csv 函数中的一些浮点问题作斗争。在我的调查中,我发现了这一点:
In [15]: a = 5.9975
In [16]: a
Out[16]: 5.9975
In [17]: np.float64(a)
Out[17]: 5.9974999999999996
为什么 Python 的内置 float
和 Python 的 np.float64
类型会给出不同的结果?我以为他们都是 C++ double ?
最佳答案
>>> numpy.float64(5.9975).hex()
'0x1.7fd70a3d70a3dp+2'
>>> (5.9975).hex()
'0x1.7fd70a3d70a3dp+2'
它们是相同的数字。不同的是他们的表现; Python 原生类型使用“合理”的表示,而 NumPy 类型使用准确的表示。
关于python - Numpy float64 vs Python float,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27098529/