Numpy float64 vs Python flotteur

Je suis en luttant contre certains virgule flottante problèmes dans les Pandas read_csv fonction. Dans mon enquête, j'ai trouvé ceci:

In [15]: a = 5.9975

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

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

Pourquoi est builtin float de Python et de la np.float64 type de Python donnant des résultats différents? Je pensais qu'ils étaient tous les deux C++ doubles?

Notez également que les Pandas read_csv fonction emploie son propre super-rapide de chaîne-à-flotteur de conversion qui est pas arrondie. Ainsi, après l'exportation d'une valeur, et re-lecture, la valeur récupérée peut-être 1 ou 2 ulps différent de l'original.

OriginalL'auteur mchangun | 2014-11-24