web-dev-qa-db-ja.com

Numpy float64 vs Python float

私は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およびnp.float64 type from Python異なる結果が得られましたか?それらは両方ともC++のダブルだと思いましたか?

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

それらは同じ番号です。異なるのは、それらの表現です。 Pythonネイティブタイプは「健全な」表現を使用し、NumPyタイプは正確な表現を使用します。