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
Let’s look at all the different ways to convert string to double in java.
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
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
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
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) {
e.printStackTrace();
}
Note that parse() method returns instance of Number
, so we are calling doubleValue()
to get the double primitive type from it. Also this method throw ParseException
if the string is not properly formatted.
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.
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.
trying to run your code for DecimalFormat parse() it return exactly 1.11
- bryo
Write syntax to convert the string value to double value
- Cika
trying to convert this string “10,00,30,00.30” but getting output as 1.00030003E7 can you help me with this? Thanks in advance
- Neeraj singhal