Мне нужно обработать CSV. Пользователи определяют, имеет ли столбец числа с плавающей запятой или двойные значения. Дело в том, что иногда они помещают двойные значения в столбец с плавающей запятой, и после этого значения округляются, и пользователи узнают об этом только позже.
Я бы не хотел, чтобы такое поведение происходило, если оно вообще возможно.
Поэтому, если мы попытаемся сохранить слишком большое число в формате с плавающей запятой, оно не будет округляться, а вместо этого выдаст исключение.
Я знаю, что некоторые числа невозможно представить правильно, как это делаем мы. 0.1 + 0.2, это не то, чего я пытаюсь избежать.
Я рассматривал возможность хранения всего в BigDecimal, но сейчас это слишком много влияние на кодовую базу, поэтому я предпочитаю пока избегать этого.
Изменить:
Я знаю, что есть ошибки округления. Но если предположить, что системы используют числа с плавающей запятой или двойные значения IEEE 754, представление будет таким же. Таким образом, число с плавающей запятой «0,25» в системе будет продолжать иметь ту же ошибку округления после импорта.
Подробнее здесь: https://stackoverflow.com/questions/791 ... ounded-and
Выдать исключение при попытке поместить число в число с плавающей запятой, которое будет округлено и потеряет точность. ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение