NumberFormat.getCurrencyInstance().format(amount)
通貨を BigDecimal から文字列にフォーマットするために使用しています。これは期待どおりに機能します。問題は、主なターゲットがオランダ市場であり、デフォルトのオランダ語の書式がおかしいことです。
-125 をフォーマットすると、オランダ語で "€ 125-" と表示されます (予想は "-€125" でした)。UK は期待通りに動作し、"-£125.50" を与えます。
ロケールがオランダ語かどうかを確認し、小数をフォーマットするたびにパターンを指定できます。しかし、オランダ語の書式設定を上書きするソリューションを好むでしょう。次のようなことを考えていました。
Locale nlLocale = new Locale("nl", "NL");
NumberFormat.getCurrencyInstance(new Locale("nl", "NL")).setFormatPattern("€ #");
そのため、書式設定時にオランダ語ロケールを使用するたびに、カスタム書式が取得されます。同様のソリューションは存在しますか?