Comment convertir une chaîne de caractères en double en Java
-
Double.parseDouble()
Méthode pour convertir une chaîne de caractères en un double -
Méthode
Double.valueOf()
pour convertir une chaîne de caractères en un double -
DecimalFormat.parse
pour convertir une chaîne de caractères en un double -
Gestion de l’exception
NumberFormatException
lors de la conversion d’une valeur de chaîne en une double valeur
Nous présenterons différentes façons de convertir la chaîne donnée en un double en Java avec quelques exemples faciles à comprendre.
Double.parseDouble()
Méthode pour convertir une chaîne de caractères en un double
La meilleure et la plus simple façon de lancer une chaîne de caractères pour la doubler en Java est d’utiliser la méthode statique parseDouble
de la classe Double
.
La méthode Double.parseDouble
retourne un type primitif.
public class Main {
public static void main(String[] args) {
String stringValue = "12.34";
double doubleValue = Double.parseDouble(stringValue);
System.out.println("Converted value: " + doubleValue);
}
}
Production:
Converted value: 12.34
Il peut s’agir d’une valeur négative ou positive dans la chaîne; cette méthode analysera correctement la chaîne pour la faire passer en double
.
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);
}
}
Production:
Converted negative value: -12.34
Converted positive value: 12.34
Méthode Double.valueOf()
pour convertir une chaîne de caractères en un double
Lorsque nous avons besoin d’un objet Double
au lieu d’un double de type primitif, nous pouvons utiliser la méthode Double.valueOf
pour obtenir une valeur d’objet double à partir d’une chaîne.
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);
}
}
Production:
-12.08
12.34
DecimalFormat.parse
pour convertir une chaîne de caractères en un double
Si la valeur que nous souhaitons est quelque chose comme 1,11,111.12d
, nous pouvons utiliser la classe DecimalFormat
pour analyser la chaîne en une doubleValue()
.
Mais comme la classe DecimalFormat
peut renvoyer différentes valeurs comme int
ou byte
, il est nécessaire de faire toutes les opérations dans le bloc try-catch
. Et comme nous souhaitons une doubleValue, nous devons utiliser la méthode doubleValue()
pour obtenir définitivement le type 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();
}
}
}
Production:
111111.12
Gestion de l’exception NumberFormatException
lors de la conversion d’une valeur de chaîne en une double valeur
Parfois, nous pouvons obtenir une NumberFormatException
. Cela arrive parce que la valeur de la chaîne n’est pas une double valeur valide.
Pour que les choses soient plus claires, nous allons voir un exemple simple qui lance cette exception.
public class Main {
public static void main(String[] args) {}
String stringValue = "1,11";
double d = Double.parseDouble(stringValue);
System.out.println(d);
}
}
Production:
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)
L’exception se produit parce que 1,11
n’est pas une double valeur valide. La solution à cette erreur est de remplacer la virgule par un point décimal comme nous le faisons ci-dessous.
public class Main {
public static void main(String[] args) {
String stringValue = "1,11";
double d = Double.parseDouble(stringValue.replace(",", "."));
System.out.println(d);
}
}
Production:
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.
LinkedInArticle connexe - Java Double
- Convertir Int en Double en Java
- Comparer les doubles en Java
- Double en Java
- Convertir long en double en Java
- Type de données flottant et double en Java
- Convertir Double en String en Java