2

我看到Using BigDecimal to work with currency但我有一点不同的问题。

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

我使用 setScale 但它不适用于例如 134.300 因为它写入 134.3 而不是 134.30

4

2 回答 2

4

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

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

印刷

134.40

顺便说一句,做同样的事情double

double d = 134.4;
System.out.printf("%.2f%n", d);
于 2013-04-23T09:28:46.613 回答
0

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

于 2013-04-23T09:27:12.743 回答