さて、私の問題は.. NumberFormat クラスの format メソッドを使用して数値を通貨文字列 (例: 10.23 から $10.23) にフォーマットしようとすると、値が自動的に四捨五入されます。これは、日本語/韓国語のロケールを NumberFormat の getCurrencyInstance() メソッドに渡すときに特に発生します。米国ロケールの場合、問題なく動作しています。問題を明確に示すスニペットを次に示します。
NumberFormat formatter = NumberFormat.getCurrencyInstance(Locale.JAPAN);
BigDecimal bd = new BigDecimal(123.456);
String str = formatter.format(bd);
JOptionPane.showMessageDialog(null, str); // Output is coming ¥123 instead of ¥123.456
何かを見逃しているのか、非論理的なことをしているのかはわかりません。そうでない場合、この丸めを防ぐ方法はありますか? 助けてください。