1

入力文字列をユーロ/ブルガリア通貨に変換しようとしています。2つのシナリオがあります。

まず、入力が10,000の場合、ブルガリア語の形式は10,000のようになり、ユーロの形式は10.000になります。

次に、入力が10.23の場合、ヨーロッパとブルガリアの両方の形式は10,23である必要があります。私はBigDecimalを使用してやろうとしています。

String s = "+000000055511.00";
         BigDecimal b = new BigDecimal(s.replace(",", "."));
         b.setScale(2, RoundingMode.HALF_UP);
         System.out.println(b.toPlainString());

しかし、ユーロやブルガリアの通貨を取り、変換する一般的なユーティリティとしてそれを行うことはできません。同じためのユーティリティはありますか?誰かが私を助けてくれますか?

4

1 に答える 1

1

あなたはjava.text.NumberFormat.getCurrencyInstance(Locale)適切な地元の人々と一緒に使うことができます。要件に一致するそのようなローカルがない場合はjava.text.DecimalFormat、パターン##' '##0.00respを使用して独自の10進フォーマッターを作成します。 ##,##0.00プラス適切な通貨記号。フォーマッタは以下に適用できますBigDecimal

String s = "+000000027511.00";
BigDecimal B = new BigDecimal(s);
// don't replace "." by ",": english number format expected here
b.setScale(2, RoundingMode.HALF_UP);

NumberFormat f = new DecimalFormat(...); //initialize as requested see docs
System.out.println(f.format(b));

もう1つの質問は、数値が10,000の場合、なぜ小数桁が必要ないのかということです。これが実際に当てはまる場合は、さらに2つのフォーマッターを定義し、基準に従ってそれらを選択する必要があります。

お役に立てれば。

于 2013-03-01T13:45:00.717 に答える