3 回答
TA贡献1752条经验 获得超4个赞
要设置千位分隔符,说123,456.78您必须使用DecimalFormat:
DecimalFormat df = new DecimalFormat("#,###.00");
System.out.println(df.format(new BigDecimal(123456.75)));
System.out.println(df.format(new BigDecimal(123456.00)));
System.out.println(df.format(new BigDecimal(123456123456.78)));
结果如下:
123,456.75
123,456.00
123,456,123,456.78
尽管设置了#,###.00遮罩,但它也成功地格式化了较长的值。请注意,结果中的逗号分隔符取决于您的语言环境。对于俄罗斯语言环境,可能只是space()。
TA贡献1829条经验 获得超6个赞
对于给定情况,另一种可能有意义的方法是
BigDecimal newBD = oldBD.setScale(2);
我之所以这样说,是因为在某些情况下,金钱超过小数点后2位是没有意义的。更进一步,这可能导致
String displayString = oldBD.setScale(2).toPlainString();
但是我只想突出显示setScale方法(它也可以使用第二个舍入模式参数来控制如何处理最后一个小数位。在某些情况下,Java会强制您指定此舍入方法)。
添加回答
举报