gpt4 book ai didi

java - 如何在格式化值时避免由 NumberFormat(Locale).format() 方法完成的自动舍入?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:51:33 26 4
gpt4 key购买 nike

好吧,我的问题是.. 当我尝试使用 NumberFormat 类的格式化方法将数字格式化为货币字符串(例如 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

我不确定我是否遗漏了什么或做了什么不合逻辑的事情。如果没有,那么有没有办法阻止这种舍入?请帮忙。

最佳答案

看来您需要为 NumberFormat 设置 setMaximumFractionDigits

    NumberFormat formatter = NumberFormat.getCurrencyInstance(Locale.JAPAN);
BigDecimal bd = new BigDecimal(123.456);
formatter.setMaximumFractionDigits(4); //Replace 4 with whatever value applicable for you.
String str = formatter.format(bd);

输出:

¥123.456

关于java - 如何在格式化值时避免由 NumberFormat(Locale).format() 方法完成的自动舍入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14104856/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com