J'ai une valeur de chaîne que je veux affecter à un BigDecimal. Lorsque je mets à jour la valeur décimale avec un nombre tel que 100.23
, cela fonctionne correctement, mais lorsque je le mets à jour avec un nombre tel que 100,23
, le code lève une exception. Pourquoi donc?
parce que vous avez essayé de mettre un "," dans un nombre.
vous pouvez utiliser ce code pour analyser un nombre avec une virgule:
NumberFormat.getNumberInstance(Locale.FRANCE).parse("265,858")
vous devez également utiliser float ou double s'il n'y a pas de raison particulière d'utiliser décimal.
Le constructeur BigDecimal(String)
documentation répertorie tous les formats et caractères valides. Notez que le ,
n'est pas inclus dans cette liste.
Si vous ne savez pas si votre chaîne comporte des virgules ou des points, vous pouvez utiliser replace(char, char)
de la classe String. Par exemple myString.replace(',', '.')
.