Преобразовать строку в двойную в Java
В этом руководстве мы рассмотрим множество способов преобразования строки в двойную в Java.
2. Двойной.parseDouble
Мы можем преобразовать строку в двойную , используя функцию Double. Метод parseDouble :
assertEquals(1.23, Double.parseDouble("1.23"), 0.000001);
3. Двойное.значениеOf
Точно так же мы можем преобразовать String в упакованный Double , используя метод Double.valueOf :
assertEquals(1.23, Double.valueOf("1.23"), 0.000001);
Обратите внимание, что возвращаемое значение Double.valueOf представляет собой упакованный Double . Начиная с Java 5, этот упакованный Double преобразуется компилятором в примитивный double , где это необходимо.
В общем, мы должны предпочесть Double.parseDouble, так как он не требует от компилятора автоматической распаковки.
4. ДесятичныйФормат.parse
Когда строка , представляющая двойное число, имеет более сложный формат, мы можем использовать 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.valueOf , метод DecimalFormat.parse возвращает число , которое мы можем преобразовать в примитивное значение типа double с помощью метода doubleValue . Кроме того, мы используем метод setParseBigDecimal , чтобы заставить DecimalFormat.parse вернуть BigDecimal .
Обычно DecimalFormat является более продвинутым, чем нам требуется, поэтому вместо этого мы должны отдавать предпочтение Double.parseDouble или Double.valueOf .
Чтобы узнать больше о DecimalFormat , ознакомьтесь с практическим руководством по DecimalFormat .
5. Недействительные преобразования
Java предоставляет единый интерфейс для обработки недопустимых числовых строк s.
Примечательно, что Double.parseDouble , Double.valueOf и DecimalFormat.parse генерируют исключение NullPointerException, когда мы передаем значение null.
Аналогично, Double.parseDouble и Double.valueOf генерируют исключение NumberFormatException, когда мы передаем недопустимую строку, которая не может быть проанализирована как двойная (например, & ).
Наконец, DecimalFormat.parse генерирует исключение ParseException , когда мы передаем недопустимую строку.
6. Избегайте устаревших конверсий
До Java 9 мы могли создать упакованный Double из String , создав экземпляр Double :
new Double("1.23");
Начиная с версии 9, этот метод официально признан устаревшим в Java.
7. Заключение
В заключение, Java предоставляет нам несколько методов для преобразования String в значения типа double .
Как правило, мы рекомендуем использовать Double.parseDouble , если не требуется упакованный Double .
Исходный код этой статьи, включая примеры, можно найти на GitHub .
Как конвертировать из String в double?
Как правильно конвертировать из object (который может быть Double) в double
Добрый день, возможно задача тривиальная, но меня как новичка она вводит в какой-то ступор.
Как конвертировать переменную типа Double в переменную типа String?
Как конвертировать переменную типа Double в переменную типа String. И наоборот.
Конвертировать string в double
Помогите решить следующую задачу. Требуется конвертировать string в double. Все хорошо, если задача.
143 / 115 / 61
Регистрация: 13.01.2016
Сообщений: 305
String s = "38.24"; double d = Double.parseDouble(s);
323 / 310 / 206
Регистрация: 14.09.2015
Сообщений: 827
oobarbazanoo, это что шутка что ли? А поискать самому?
1 2 3
String num = "120.5894"; double numer = Double.valueOf(num); double nmb = Double.parseDouble(num);
Регистрация: 13.05.2015
Сообщений: 1,835
Окей, как получить double от пользователя ?
Добавлено через 7 минут
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
public static double getDouble(String string) throws IOException else { dND = true; break; } } if(nOMS > 1)dND = true; if(nOMS == 1 && (maybeDouble.charAt(0) != '-'))dND = true; if(nOD > 1)dND = true; if(maybeDouble.length() == 0)dND = true; if(maybeDouble.length() >= 2) { if((maybeDouble.charAt(0) == '0') && (maybeDouble.charAt(1) == '0'))dND = true; if(((maybeDouble.charAt(0) == '0') && (maybeDouble.charAt(1) != '.')))dND = true; } if(maybeDouble.length() >= 2) { if(((maybeDouble.charAt(0) == '-') && (maybeDouble.charAt(1) != '0') && (maybeDouble.charAt(1) != '.')))dND = true; } if(dND) { System.out.println("It is not a double, try again, please! Advice: do not use " , " ."); continue; } res = Double.valueOf(maybeDouble); break; }while(true); return res; }
Добавлено через 1 минуту
Целый день мучаюсь. Никак не хочет получаться. У меня такие условия :
— нужно считать double;
— есть считанная String;
— нужно проверить является ли данная строка double, если да, то использовать этот double, если нет, то считывать дальше.
Java Convert String to double

While we believe that this content benefits our community, we have not yet thoroughly reviewed it. If you have any suggestions for improvements, please let us know by clicking the “report an issue“ button at the bottom of the tutorial.
Java String to double conversion can be done by many ways. Today we will look into some common ways to convert java string to double primitive data type or Double object. Note that since java supports autoboxing, double primitive type and Double object can be used interchangeably without any issues.
Double d1 = 10.25d; //autoboxing from double to Double double d = Double.valueOf(10.25); //unboxing from Double to double
Java Convert String to Double

Let’s look at all the different ways to convert string to double in java.
Double.parseDouble()
We can parse String to double using parseDouble() method. String can start with “-” to denote negative number or “+” to denote positive number. Also any trailing 0s are removed from the double value. We can also have “d” as identifier that string is a double value. This method returns double primitive type. Below code snippet shows how to convert string to double using Double.parseDouble() method.
String str = "+123.4500d"; double d = Double.parseDouble(str); // returns double primitive System.out.println(d); //-123.45, trailing 0s are removed System.out.println(Double.parseDouble("123.45001")); //123.45001 System.out.println(Double.parseDouble("123.45001d")); //123.45001 System.out.println(Double.parseDouble("123.45000")); //123.45 System.out.println(Double.parseDouble("123.45001D")); //123.45001
Double.valueOf()
This method works almost similar as parseDouble() method, except that it returns Double object. Let’s see how to use this method to convert String to Double object.
String str = "123.45"; Double d = Double.valueOf(str); // returns Double object System.out.println(d); //123.45 System.out.println(Double.valueOf("123.45d")); //123.45 System.out.println(Double.valueOf("123.4500d")); //123.45 System.out.println(Double.valueOf("123.45D")); //123.45
new Double(String s)
We can convert String to Double object through it’s constructor too. Also if we want double primitive type, then we can use doubleValue() method on it. Note that this constructor has been deprecated in Java 9, preferred approach is to use parseDouble() or valueOf() methods.
String str = "98.7"; double d = new Double(str).doubleValue(); //constructor deprecated in java 9 System.out.println(d); //98.7
DecimalFormat parse()
This is useful to parse formatted string to double. For example, if String is “1,11,111.23d” then we can use DecimalFormat to parse this string to double as:
String str = "1,11,111.23d"; try < double l = DecimalFormat.getNumberInstance().parse(str).doubleValue(); System.out.println(l); //111111.23 >catch (ParseException e)
That’s all for converting string to double in java program. Reference: Double API Doc
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
Как преобразовать string в double java
Часто, программа заканчивается с числовыми данными строковом объекте — значение, вводимое пользователем, например.
Number подклассы, которые обертывают примитивные числовые типы ( Byte , Integer , Double , Float , Long , и Short ) каждый обеспечивает названный метод class valueOf это преобразовывает строку в объект того типа. Вот пример, ValueOfDemo , это получает две строки от командной строки, преобразовывает их в числа, и выполняет арифметические операции на значениях:
public class ValueOfDemo < public static void main(String[] args) < // this program requires two // arguments on the command line if (args.length == 2) < // convert strings to numbers float a = (Float.valueOf(args[0])).floatValue(); float b = (Float.valueOf(args[1])).floatValue(); // do some arithmetic System.out.println("a + b = " + (a + b)); System.out.println("a - b = " + (a - b)); System.out.println("a * b = " + (a * b)); System.out.println("a / b = " + (a / b)); System.out.println("a % b = " + (a % b)); >else < System.out.println("This program " + "requires two command-line arguments."); >> >
Следующее является выводом из программы, когда Вы используете 4.5 и 87.2 для параметров командной строки:
a + b = 91.7 a - b = -82.7 a * b = 392.4 a / b = 0.0516055 a % b = 4.5
Отметьте: Каждый из Number подклассы, которые обертывают примитивные числовые типы также, обеспечивают a parseXXXX() метод (например, parseFloat() ) это может использоваться, чтобы преобразовать строки в примитивные числа. Так как тип примитива возвращается вместо объекта, parseFloat() метод является более прямым чем valueOf() метод. Например, в ValueOfDemo программа, мы могли использовать:
float a = Float.parseFloat(args[0]); float b = Float.parseFloat(args[1]);
Преобразование Чисел к Строкам
Иногда Вы должны преобразовать число в строку, потому что Вы должны работать на значении в его строковой форме. Есть несколько легких способов преобразовать число в строку:
int i; // Concatenate "i" with an empty string; conversion is handled for you. String s1 = "" + i;
// The valueOf class method. String s2 = String.valueOf(i);
Каждый из Number подклассы включают метод class, toString() , это преобразует его тип примитива в строку. Например:
int i; double d; String s3 = Integer.toString(i); String s4 = Double.toString(d);
ToStringDemo пример использует toString метод, чтобы преобразовать число в строку. Программа тогда использует некоторые строковые методы, чтобы вычислить число цифр прежде и после десятичной точки:
public class ToStringDemo < public static void main(String[] args) < double d = 858.48; String s = Double.toString(d); int dot = s.indexOf('.'); System.out.println(dot + " digits " + "before decimal point."); System.out.println( (s.length() - dot - 1) + " digits after decimal point."); >>
Вывод этой программы:
3 digits before decimal point. 2 digits after decimal point.
Ваше использование этой страницы и всего материала на страницах под «Учебным баннером» Java подвергается этим официальным уведомлениям.
Авторское право © 1995, 2012 Oracle и/или его филиалы. Все права защищены.
