Convertir Ssortingng pour doubler en Java

Comment convertir une Ssortingng telle que "12.34" en double en Java?

Vous pouvez utiliser Double.parseDouble() pour convertir une Ssortingng en double :

 Ssortingng text = "12.34"; // example Ssortingng double value = Double.parseDouble(text); 

Pour ton cas, on dirait que tu veux:

 double total = Double.parseDouble(jlbTotal.getText()); double price = Double.parseDouble(jlbPrice.getText()); 

Si vous avez des problèmes pour parsingr la chaîne en valeurs décimales, vous devez remplacer “,” dans le nombre par “.”


 Ssortingng number = "123,321"; double value = Double.parseDouble( number.replace(",",".") ); 
 double d = Double.parseDouble(aSsortingng); 

Cela devrait convertir la chaîne aSsortingng dans le double d.

Pour convertir une chaîne en double, essayez ce qui suit

 Ssortingng s = "10.1"; Double d = Double.parseDouble(s); 

La méthode parseDouble produira l’effet souhaité, de même que la méthode Double.valueOf ().

Utilisez le new BigDecimal(ssortingng) . Cela garantira un calcul correct plus tard.

En règle générale, utilisez toujours BigDecimal pour les calculs sensibles comme l’argent.

Exemple:

 Ssortingng doubleAsSsortingng = "23.23"; BigDecimal price = new BigDecimal(doubleAsSsortingng); BigDecimal total = price.plus(anotherPrice); 

Vous devez uniquement parsingr les valeurs de chaîne à l’aide de Double

 Ssortingng someValue= "52.23"; Double doubleVal = Double.parseDouble(someValue); System.out.println(doubleVal); 

Citant la citation de Robertiano ci-dessus encore – car c’est de loin la version la plus polyvalente et la plus adaptée à la localisation. Ça mérite un post complet!

Une autre option:

 DecimalFormat df = new DecimalFormat(); DecimalFormatSymbols sfs = new DecimalFormatSymbols(); sfs.setDecimalSeparator(','); df.setDecimalFormatSymbols(sfs); double d = df.parse(number).doubleValue(); 
 Ssortingng double_ssortingng = "100.215"; Double double = Double.parseDouble(double_ssortingng); 

Il y a une autre façon aussi.

 Double temp = Double.valueOf(str); number = temp.doubleValue(); 

Double est une classe et “temp” est une variable. “nombre” est le nombre final que vous recherchez.

L’utilisation de Double.parseDouble() sans entourer le bloc try/catch peut générer un potentiel. NumberFormatException avait la double chaîne d’entrée non conforme à un format valide.

Guava propose une méthode utilitaire qui renvoie null si votre chaîne ne peut pas être analysée.

https://google.github.io/guava/releases/19.0/api/docs/com/google/common/primitives/Doubles.html#tryParse(java.lang.Ssortingng)

Double valueDouble = Doubles.tryParse(aPotentiallyCorruptedDoubleSsortingng);

Lors de l’exécution, une entrée Ssortingng malformée valueDouble null atsortingbué à valueDouble

C’est ce que je ferais

  public static double convertToDouble(Ssortingng temp){ Ssortingng a = temp; //replace all commas if present with no comma Ssortingng s = a.replaceAll(",","").sortingm(); // if there are any empty spaces also take it out. Ssortingng f = s.replaceAll(" ", ""); //now convert the ssortingng to double double result = Double.parseDouble(f); return result; // return the result } 

Par exemple, vous entrez la chaîne “4 55,63. 0” la sortie sera le numéro double 45563.0

Utilisé ceci pour convertir n’importe quel nombre de chaîne en double lorsque vous avez besoin de simplement convertir le type de données de num et num2 en int; a pris tous les cas pour une chaîne double avec Eng: “Bader Qandeel”

 public static double str2doubel(Ssortingng str) { double num = 0; double num2 = 0; int idForDot = str.indexOf('.'); boolean isNeg = false; Ssortingng st; int start = 0; int end = str.length(); if (idForDot != -1) { st = str.subssortingng(0, idForDot); for (int i = str.length() - 1; i >= idForDot + 1; i--) { num2 = (num2 + str.charAt(i) - '0') / 10; } } else { st = str; } if (st.charAt(0) == '-') { isNeg = true; start++; } else if (st.charAt(0) == '+') { start++; } for (int i = start; i < st.length(); i++) { if (st.charAt(i) == ',') { continue; } num *= 10; num += st.charAt(i) - '0'; } num = num + num2; if (isNeg) { num = -1 * num; } return num; }