Подтвердить что ты не робот

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 из Python дает разные результаты? Я думал, что они оба удваивают С++?

4b9b3361

Ответ 1

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

Они одинаковые. Что отличает их представление; родной тип Python использует "нормальное" представление, а тип NumPy использует точное представление.