如何始终将 BigDecimal 对象舍入为 2 位小数(即使我的 BigDecimal 对象没有小数)?
我在做:
myBigDecimal.setScale(2, RoundingMode.HALF_UP); // works fine when it has decimals
上下文:我有一个 POJO 列表,当我发送到前端时,我在 ExtJs 中给它们格式
但是
我也在生成一个 CSV 文件,我被要求所有的经济领域都有 2 位小数。
有什么想法或解决方法吗?
谢谢
最佳答案
您可以使用 java.text.DecimalFormat
类来格式化十进制数。例如
代码:
public static void main(String[] args) {
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setDecimalSeparator('.');
DecimalFormat formatter = new DecimalFormat("#.00", symbols);
System.out.println(formatter.format(BigDecimal.valueOf(12.456)));
System.out.println(formatter.format(BigDecimal.valueOf(12L)));
}
输出:
12.46
12.00
在 Customizing Formats (The Java Tutorials > Internationalization > Formatting) 中查看更多信息。
关于java - Big Decimal 总是四舍五入到两位小数(即使我的 BigDecimal 对象没有小数)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20550657/