десятичное число, представленное многими цифрами, когда есть только 2 - PullRequest
0 голосов
/ 03 февраля 2019

Я пытаюсь вывести десятичное число, которое сохраняется в объекте серии панд.

Номер 7,45.Но когда я вывожу его, он становится 7.449999809265137.Мне нужно, чтобы оно было 7,45.Как мне получить точное число 7,45, а не значение с плавающей запятой, которое приблизительно равно 7,45?

--- series_data ['High'] Символы PIH 7,45 TPNL 0,75 TURN 2.05 Имя: 2018-01-02 00:00:00, dtype: float64

--- series_data ['Высокий '] [' PIH '] 7,449999809265137

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Плавающие точки не предназначены для точных значений, но для данных измерений, которые по своей природе имеют определенную точность.Пожалуйста, прочитайте https://floating -point-gui.de /

Для печати с определенной точностью используйте параметры форматирования строки, такие как %2f% nr

Пожалуйста, не указывайтет круглых чисел с плавающей точкой

0 голосов
/ 03 февраля 2019

Как указано выше, число, хранящееся в памяти, является числом со многими десятичными разрядами.Возможно, вы достигли этого числа, ожидая увидеть 7,45 из-за некоторой проблемы числовой точности .Представление чисел с плавающей запятой не всегда точное.Например:

>>> 0.1 + 0.2
0.30000000000000004
>> 

У вас есть пара вариантов при извлечении числа: вы можете отформатировать его до 2 десятичных знаков (и сохранить полное представление в памяти), вы можете принудительно округлить его и изменитьв памяти:

x = numpy.round(x, 2)   # will round x to 2 decimal places and save that value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...