web-dev-qa-db-fra.com

Java BigDecimal peut avoir une virgule à la place point?

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?

14
Jean Tehhe

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.

13
No Idea For Name

Le constructeur BigDecimal(String)documentation répertorie tous les formats et caractères valides. Notez que le , n'est pas inclus dans cette liste.

4
Kevin Bowersox

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(',', '.')

0
Kayz