Рубрики
Без рубрики

Преобразование строки Java в Double

Изучите множество способов преобразования строки в двойник в Java.

Автор оригинала: baeldung.

1. Обзор

В этом уроке мы рассмотрим множество способов преобразования String в double в Java.

2. Double.parseDouble

Мы можем преобразовать строку в double с помощью Double. parseDouble метод:

assertEquals(1.23, Double.parseDouble("1.23"), 0.000001);

3. Double.valueOf

Аналогично, мы можем преобразовать String в boxed Double с помощью метода Double.valueOf :

assertEquals(1.23, Double.valueOf("1.23"), 0.000001);

Обратите внимание, что возвращаемое значение Double.valueOf является коробочным Double . Начиная с Java 5, этот упакованный Double преобразуется компилятором в примитив double там, где это необходимо.

В общем, мы должны отдать предпочтение Double.parseDouble , так как он не требует, чтобы компилятор выполнял автоматическую распаковку.

4. DecimalFormat.parse

Когда Строка , представляющая double , имеет более сложный формат, мы можем использовать DecimalFormat .

Например, мы можем преобразовать значение валюты на основе десятичной дроби без удаления нечисловых символов:

DecimalFormat format = new DecimalFormat("\u00A4#,##0.00");
format.setParseBigDecimal(true);

BigDecimal decimal = (BigDecimal) format.parse("-$1,000.57");

assertEquals(-1000.57, decimal.doubleValue(), 0.000001);

Подобно Double.value , метод DecimalFormat.parse возвращает Число , которое мы можем преобразовать в примитив double с помощью метода doubleValue . Кроме того, мы используем метод setParseBigDecimal , чтобы заставить DecimalFormat.parse вернуть BigDecimal .

Обычно Десятичный формат является более продвинутым, чем нам требуется, поэтому мы должны отдавать предпочтение Double.parseDouble или Double.valueOf вместо этого.

Чтобы узнать больше о Десятичном формате , пожалуйста, ознакомьтесь с практическим руководством по десятичному формату .

5. Недопустимые преобразования

Java предоставляет единый интерфейс для обработки недопустимых числовых строк s.

Примечательно, что Double.parseDouble , Double.valueOf и DecimalFormat.parse бросают NullPointerException , когда мы передаем null.

Аналогично, Double.parseDouble и Double.valueOf вызывают исключение NumberFormatException , когда мы передаем недопустимую строку, которая не может быть проанализирована в double (например, & ).

Наконец, DecimalFormat.parse выдает ParseException , когда мы передаем недопустимую строку.

6. Избегайте Устаревших Преобразований

До Java 9 мы могли бы создать коробочный Double из String , создав экземпляр Double :

new Double("1.23");

Начиная с версии 9, Java официально устарела этот метод.

7. Заключение

В заключение, Java предоставляет нам несколько методов для преобразования String s в double значения.

В общем, мы рекомендуем использовать Double.parseDouble , если только не требуется коробочный Double .

Исходный код этой статьи, включая примеры, можно найти на GitHub .