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 дает разные результаты? Я думал, что они оба удваивают С++?
Ответы
Ответ 1
>>> numpy.float64(5.9975).hex()
'0x1.7fd70a3d70a3dp+2'
>>> (5.9975).hex()
'0x1.7fd70a3d70a3dp+2'
Они одинаковые. Что отличает их представление; родной тип Python использует "нормальное" представление, а тип NumPy использует точное представление.