BigDecimal,最小2位数

时间:2013-04-23 09:23:08

标签: java currency tostring bigdecimal

我看到了Using BigDecimal to work with currencies,但我有一个不同的问题。

我将带有BigDecimal参数的对象赋予PDF生成库,我不能使用Formatter,只能发送对象。有可能默认的toString方法总是以格式* .xx w.g 134.40写入BigDecimal对象吗?

我使用的是setScale,但它不能用于例如134.300因为它写的是134.3而不是134.30

2 个答案:

答案 0 :(得分:4)

我认为问题是您忘记了BigDecimal是不可变的,而setScale不会改变现有的BigDecimal

BigDecimal decimal = BigDecimal.valueOf(134.4);
BigDecimal decimal2 = decimal.setScale(2, RoundingMode.HALF_UP);
System.out.println(decimal2);

打印

134.40

BTW与double

做同样的事情
double d = 134.4;
System.out.printf("%.2f%n", d);

答案 1 :(得分:0)

只需使用NumberFormat.getCurrencyInstance().format(n)并将生成的字符串传递给PDF生成库。