1

ダブルプライスをロケール固有のフォーマットにフォーマットできるようにしたいと考えています。以下のコードを使用してこれを実現できます。

NumberFormat.getCurrencyInstance(locale).format(20.0);

ただし、21 のロケールしかサポートされておらず、それ以上の国をサポートする必要があります。ISO 国コードを指定して価格をフォーマットできると便利です。たとえば、ISO 国コードCANが与えられた場合、価格を$20.00などにフォーマットしたいとします。

Javaはこれをサポートしていますか? そうでない場合、これを実現できるオープン ソース バージョン (Date の joda time など) はありますか?

4

2 に答える 2

2

Locale必要な言語と国に基づいて を作成できます。デフォルトでは、Java にはこれらのロケールの一部が定数として含まれていますが、200 を超える国をサポートしています。

Locale locale = new Locale("es", "pe"); //Spanish, Peru

より詳しい情報:

于 2012-10-02T04:54:23.267 に答える
0
NumberFormat f = NumberFormat.getInstance(loc);
if (f instanceof DecimalFormat) {
    ((DecimalFormat) f).setDecimalSeparatorAlwaysShown(true);
}

DecimalFormatを試しましたか?出力をカスタマイズするための多くのメソッドがあります。ここでさまざまなsetMethodsを確認してください:http: //docs.oracle.com/javase/8/docs/api/java/text/DecimalFormat.html#method.summary

于 2012-10-02T04:50:30.630 に答える