Невозможно преобразовать значение из CSV в Double

Моя проблема состоит в том, чтобы разобрать значение из CSV в два раза. Я не могу понять, почему я могу анализировать все значения из столбцов A-BJ и когда у меня есть ошибка java throw столбца BK

Exception in thread "main" java.lang.NumberFormatException: For input string: "4,69E+12"
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at sun.misc.FloatingDecimal.parseDouble(Unknown Source)
at java.lang.Double.parseDouble(Unknown Source)
at Compare.normalizacja_dziesietna(Compare.java:68)
at Compare.main(Compare.java:138)

Например в колонке BE тоже очень большое число и нет проблем с парсингом ...

Вот скриншот файла https://pasteboard.co/HVkMt4L.png

Вы можете показать нам код Java?

deHaar 07.01.2019 12:36

Он обрабатывает значение как String, поэтому вы пытаетесь разобрать «4,96E + 12» как Double, что недопустимо. Убедитесь, что столбец имеет числовой формат, и проверьте значение необработанного файла CSV в текстовом редакторе.

David Billings 07.01.2019 12:38
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
154
2

Ответы 2

Double.parseDouble ожидает 4.69E+12 вместо 4,69E+12.

Пример:

Double.parseDouble("4,69E+12".replaceAll(",", "\\."));

Вместо этого вы должны использовать BigDecimal.

Узнать больше здесь

Другие вопросы по теме