J'ai un montant en dollars au format String. Par exemple: String salePrice = 348,00 $.
Cependant, je veux convertir cette valeur de chaîne en une valeur BigDecimal, mais elle a un signe dollar dans la chaîne. J'ai essayé le code ci-dessous mais cela ne fonctionne pas.
BigDecimal sPrice = new BigDecimal(salePrice);
J'ai fini par obtenir cette exception ci-dessous:
Java.lang.NumberFormatException
at Java.math.BigDecimal.<init>(Unknown Source)
at Java.math.BigDecimal.<init>(Unknown Source)
BigDecimal Constructor prend une chaîne numérique valide.
La représentation sous forme de chaîne se compose d'un signe facultatif, '+' ('\ u002B') ou '-' ('\ u002D'), suivi d'une séquence de zéro ou plusieurs chiffres décimaux ("l'entier"), éventuellement suivi d'un fraction, éventuellement suivie d'un exposant.
String salePrice = "$348.00";
String price = salePrice.replace("$","");
BigDecimal sPrice = new BigDecimal(price);
System.out.println(sPrice);
Sortie = 348.00
Vous pouvez également consulter la classe NumberFormat . En utilisant cette classe, vous pouvez définir votre Locale
correspondant.
String salePrice = "$123.45";
Locale locale = Locale.US;
Number number = NumberFormat.getCurrencyInstance(locale).parse(salePrice);
System.out.println(number);
Sortie = 123.45
Retirez d'abord le signe dollar ($).
Le constructeur requiert un nombre dans la chaîne, votre chaîne commence par un $
, qui n'est pas un nombre valide. Vous devez d'abord le retirer.