6

ロケールの使用を避け、代わりに通貨コード(ISO 4217、「USD」など)を使用したいと思います。通貨コードを使用してCurrencyクラスを設定する方法は理解していますが、この通貨をNumberFormatに組み込んで、doubleをその通貨にフォーマットするにはどうすればよいですか?

NumberFormatとCurrencyの両方を別々に理解していますが、これらを組み合わせて、doubleを4.00-> $ 4.00などの実際の通貨文字列にフォーマットするにはどうすればよいですか?この例では$4などの通貨全体の数値を作成するために小数点以下の桁数を削除するため、NumberFormatを使用する必要があります。

助けてくれてありがとう、ライアン

編集:答え、.setCurrency、これは私がNumberFormatで気づかなかったものです。通貨を使用してNumberFormatを作成することに集中しすぎましたが、ロケールからしか作成できないため、苦労していました。早く考えたらいいのに。ありがとう!次回は、メソッドリストをもっと詳しく読みます。NumberFormatはCurrencyクラスをサポートする必要があることを知っていましたが、Currencyをこの方法で使用することは理にかなっています。

4

2 に答える 2

4

これにより、特定の通貨で最も近い通貨単位全体に金額を表示できるようになります。私はそれをテストしていませんが、95%正しいと思います。

double amount = ...;
String currencyCode = ...;
Currency currency = Currency.getInstance(currencyCode);
NumberFormat format = NumberFormat.getCurrencyInstance();
format.setMaximumFractionDigits(0);
format.setCurrency(currency);
String formattedAmount = format.format(amount);
于 2012-11-01T18:18:24.697 に答える
2

次のコードを試しましたか?

    NumberFormat nf = NumberFormat.getCurrencyInstance();
    String currencyCode = "USD";
    nf.setCurrency(Currency.getInstance(currencyCode));
    double currencyAmmount = 4.00;
    String formattedValue= nf.format(currencyAmmount);

上記のコードから私は得ました$4.00、そして私はこれがあなたが期待したものであると思います。

NumberFormat.getCurrencyInstance()ここで最も重要なことは、の代わりに使用することだと思いますNumberFormat.getInstance()

于 2012-11-01T18:28:08.530 に答える