Cómo convertir una cadena en doble en Java
-
Double.parseDouble()
Método para convertir una cadena en un doble -
Double.valueOf()
Método para convertir una cadena en un doble -
DecimalFormat.parse
para convertir una cadena en un doble -
Manejando
NumberFormatException
mientras se convierte un valor de cadena a un valorDouble
Presentaremos diferentes formas de convertir la cadena dada en un doble en Java con algunos ejemplos fáciles de entender.
Double.parseDouble()
Método para convertir una cadena en un doble
La mejor y más fácil manera de lanzar una cadena para doblar en Java es usando el método estático parseDouble
de la clase Double
.
Double.parseDouble
devuelve un tipo primitivo.
public class Main {
public static void main(String[] args) {
String stringValue = "12.34";
double doubleValue = Double.parseDouble(stringValue);
System.out.println("Converted value: " + doubleValue);
}
}
Resultado:
Converted value: 12.34
Puede ser un valor negativo o positivo en la cadena; este método parseará la cadena a double
correctamente.
public class Main {
public static void main(String[] args) {
String stringValueNegative = "-12.34";
String stringValuePositive = "+12.34";
double doubleValueNegative = Double.parseDouble(stringValueNegative);
double doubleValuePositive = Double.parseDouble(stringValuePositive);
System.out.println("Converted negative value: " + doubleValueNegative);
System.out.println("Converted positive value: " + doubleValuePositive);
}
}
Resultado:
Converted negative value: -12.34
Converted positive value: 12.34
Double.valueOf()
Método para convertir una cadena en un doble
Cuando necesitamos un objeto Double
en lugar de un doble de tipo primitivo, podemos usar el método Double.valueOf
para obtener un valor de objeto doble de una cadena.
public class Main {
public static void main(String[] args) {
String stringValueNegative = "-12.08d";
String stringValuePositive = "+12.3400";
Double doubleValueNegative = Double.valueOf(stringValueNegative);
Double doubleValuePositive = Double.valueOf(stringValuePositive);
System.out.println(doubleValueNegative);
System.out.println(doubleValuePositive);
}
}
Resultado:
-12.08
12.34
DecimalFormat.parse
para convertir una cadena en un doble
Si el valor que deseamos es algo como 1,11,111.12d
, podemos usar la clase DecimalFormat
para analizar la cadena a un doubleValue()
.
Pero como la clase DecimalFormat
puede devolver diferentes valores como int
o byte
, es necesario hacer todas las operaciones en el bloque try-catch
. Y como deseamos un doble valor, tenemos que usar el método doubleValue()
para obtener definitivamente el tipo double
.
import java.text.DecimalFormat;
import java.text.ParseException;
public class Main {
public static void main(String[] args) {
String stringValue = "1,11,111.12d";
try {
double doubleValue = DecimalFormat.getNumberInstance().parse(stringValue).doubleValue();
System.out.println(doubleValue);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
Resultado:
111111.12
Manejando NumberFormatException
mientras se convierte un valor de cadena a un valor Double
A veces podemos obtener NumberFormatException
. Sucede porque el valor de la cadena no es un valor doble válido.
Para hacerlo más claro, veremos un ejemplo simple que arroja esta excepción.
public class Main {
public static void main(String[] args) {}
String stringValue = "1,11";
double d = Double.parseDouble(stringValue);
System.out.println(d);
}
}
Resultado:
Exception in thread "main" java.lang.NumberFormatException: For input string: "1,11"
at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054)
at java.base/jdk.internal.math.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.base/java.lang.Double.parseDouble(Double.java:543)
at com.company.Main.main(Main.java:14)
La excepción ocurre porque 1,11
no es un valor doble válido. La solución a este error es sustituir la coma por un punto decimal como hacemos a continuación.
public class Main {
public static void main(String[] args) {
String stringValue = "1,11";
double d = Double.parseDouble(stringValue.replace(",", "."));
System.out.println(d);
}
}
Resultado:
1.11
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedInArtículo relacionado - Java Double
- Convertir Int a Double en Java
- Comparar dobles en Java
- Double en Java
- Convertir lang en double en Java
- Tipo de datos float y double en Java
- Convertir doble en cadena en Java