Java - Convert String to double

To convert a String to double in Java, we can use:


static double parseDouble(String s): Returns a new double initialized to the value represented by the specified String, as performed by the valueOf method of class Double.

double d1 = Double.parseDouble("99.90");
System.out.println(d1);  // 99.9

double d2 = Double.parseDouble("99.901");
System.out.println(d2);  // 99.901

double d3 = Double.parseDouble("99.9010D");
System.out.println(d3);  // 99.901

double d4 = Double.parseDouble("-99.909d");
System.out.println(d4);  // -99.909


static Double valueOf(double d)​: Returns a Double instance representing the specified double value.

double d1 = Double.valueOf("88.80");
System.out.println(d1);  // 88.9

double d2 = Double.valueOf("88.801");
System.out.println(d2);  // 88.801

double d3 = Double.valueOf("88.8010d");
System.out.println(d3);  // 88.801

double d4 = Double.valueOf("-88.808D");
System.out.println(d4);  // -88.808

Implicit casting automatically unbox Double into double.

Deprecated: Double‘s Constructor

Double​(String s) is deprecated.

It is rarely appropriate to use this constructor. Use parseDouble(String) to convert a string to a double primitive, or use valueOf(String) to convert a string to a Double object.

double d1 = new Double("123");
System.out.println(d1);  // 123

double d2 = new Double("-88.808D");
System.out.println(d2);  // -88.808D

double d3 = new Double("FF00"); // NumberFormatException


parse​(String source) throws ParseException: Parses text from the beginning of the given string to produce a number. The method may not use the entire text of the given string.

import java.text.DecimalFormat; import java.text.ParseException;

DecimalFormat decimalFormat = new DecimalFormat();
try {
    double l = decimalFormat.parse("456.0990D").doubleValue();
    System.out.println(l);  // 456.99
} catch (ParseException e) {

We also can use external libraries like Apache Commons NumberUtils, Spring's NumberUtils, and Google's Guava primitive Doubles.

Apache Commons NumberUtils

import org.springframework.util.NumberUtils;

double d1 = NumberUtils.toDouble("365.536");
System.out.println(d1);  // 365.536

double d2 = NumberUtils.toDouble("");
System.out.println(d2);  // 0.0

double d3 = NumberUtils.toDouble("365.5360D", 0);
System.out.println(d3);  // 365.536

double d4 = NumberUtils.toDouble("xyz", -1);
System.out.println(d4);  // -1.0

double d5 = NumberUtils.toDouble("", -1);
System.out.println(d5);  // -1.0

double d6 = NumberUtils.createDouble("365.5360d");
System.out.println(d6);  // 365.536

double d7 = NumberUtils.createDouble("-#88FF");  // NumberFormatException

Spring NumberUtils

Similar like in Converting String to int and Converting String to long, we can use Spring's NumberUtils to parse String to number (in this case double).

import org.springframework.util.NumberUtils;

double d1 = NumberUtils.parseNumber("95.085", Double.class);
System.out.println(d1);  // 95.085

double d2 = NumberUtils.parseNumber("-31.490", Double.class);
System.out.println(d2);  // -31.49

Google Guava Doubles.tryParse()

static Double tryParse(String string): Parses the specified string as a double-precision floating point value.


double d1 = Doubles.tryParse("512.345");
System.out.println(d1);  // 512.345

double d2 = Doubles.tryParse("-512.3450D");
System.out.println(d2);  // -512.345