好的,所以我的问题是.. 当我尝试将数字格式化为货币字符串(例如 10.23 到 $10.23)时,使用 NumberFormat 类的格式方法,它会自动四舍五入该值。当我将日语/韩语语言环境传递给 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
我不确定我是否遗漏了什么或做了一些不合逻辑的事情。如果没有,那么有没有办法防止这种情况发生?请帮忙。