BigDecimalに割り当てる文字列値があります。 100.23
のような数値で10進数の値を更新すると問題なく動作しますが、100,23
のような数値で更新すると、コードが例外をスローします。何故ですか?
数字に「、」を入れようとしたためです。
このコードを使用して、カンマで数値を解析できます。
NumberFormat.getNumberInstance(Locale.FRANCE).parse("265,858")
10進数を使用する特別な理由がない場合は、floatまたはdoubleも使用する必要があります。
BigDecimal(String)
コンストラクター ドキュメント は、すべての有効な形式と文字をリストします。 ,
はこのリストに含まれていません。
文字列にコンマまたはポイントがあるかどうかわからない場合は、Stringクラスのreplace(char, char)
を使用できます。たとえば、myString.replace(',', '.')
。