我看到了Using BigDecimal to work with currencies,但我有一个不同的问题。
我将带有BigDecimal参数的对象赋予PDF生成库,我不能使用Formatter,只能发送对象。有可能默认的toString方法总是以格式* .xx w.g 134.40写入BigDecimal对象吗?
我使用的是setScale,但它不能用于例如134.300因为它写的是134.3而不是134.30
答案 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生成库。