31

NumberFormat.getCurrencyInstance()マイナス記号付きの負の USD 通貨値を出力するにはどうすればよいですか?

4

7 に答える 7

43

NumberFormat.getCurrencyInstance()ロケールに依存しない方法でそれを行うには、によって返される DecimalFormat を少し調整する必要があります。これが私がやったことです(Androidでテスト済み):

DecimalFormat formatter = (DecimalFormat)NumberFormat.getCurrencyInstance();
String symbol = formatter.getCurrency().getSymbol();
formatter.setNegativePrefix(symbol+"-"); // or "-"+symbol if that's what you need
formatter.setNegativeSuffix("");

IIRC は、Currency.getSymbol()すべてのシステムのすべてのロケールの値を返すわけではありませんが、主要なロケールでは機能するはずです (そして、それ自体に合理的なフォールバックがあると思うので、何もする必要はありません)。

于 2010-10-12T15:08:54.157 に答える
2

試す:

NumberFormat.getCurrencyInstance(Locale.CANADA);

于 2015-10-30T15:35:57.977 に答える
2

DecimalFormatデフォルトに依存するのではなく、特定の形式が必要な場合は、独自の形式を作成することをお勧めします。

編集: NumberFormat.getCurrencyInstance() の結果をキャストしDecimalFormatて、好みに合わせて調整することもできます。

于 2010-01-13T12:09:36.833 に答える
0
NumberFormat.getCurrencyInstance(Locale.UK);
于 2015-12-23T14:34:10.143 に答える