Comment convertir une chaîne de caractères en double en Java

Rupam Yadav 12 octobre 2023
  1. Double.parseDouble() Méthode pour convertir une chaîne de caractères en un double
  2. Méthode Double.valueOf() pour convertir une chaîne de caractères en un double
  3. DecimalFormat.parse pour convertir une chaîne de caractères en un double
  4. Gestion de l’exception NumberFormatException lors de la conversion d’une valeur de chaîne en une double valeur
Comment convertir une chaîne de caractères en double en Java

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
Auteur: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Article connexe - Java Double

Article connexe - Java String