文字列形式の金額があります。例:文字列salePrice = 348.00ドル。
ただし、このString値をBigDecimal値に変換したいのですが、文字列にドル記号が含まれています。以下のコードを試しましたが、機能しません。
BigDecimal sPrice = new BigDecimal(salePrice);
私はこの例外を以下で取得することになりました:
Java.lang.NumberFormatException
at Java.math.BigDecimal.<init>(Unknown Source)
at Java.math.BigDecimal.<init>(Unknown Source)
BigDecimalコンストラクター は、有効な数値文字列を取ります。
文字列表現は、オプションの記号、「+」(「\ u002B」)または「-」(「\ u002D」)と、それに続くゼロ個以上の10進数(「整数」)で構成されます。分数。オプションで指数が続きます。
String salePrice = "$348.00";
String price = salePrice.replace("$","");
BigDecimal sPrice = new BigDecimal(price);
System.out.println(sPrice);
出力= 348.00
NumberFormat クラスもご覧ください。このクラスを使用すると、対応するLocale
を設定できます。
String salePrice = "$123.45";
Locale locale = Locale.US;
Number number = NumberFormat.getCurrencyInstance(locale).parse(salePrice);
System.out.println(number);
出力= 123.45
最初にドル記号($)を削除します。
コンストラクターには、文字列にNumberが必要です。文字列は$
で始まりますが、これは有効な数値ではありません。最初にそれを取り除く必要があります。