我看到了Using BigDecimal to work with currencies但我有一点点不同的问题。BigDecimal与最小的2个小数位
我给BigDecimal参数的对象给PDF生成库,我不能使用Formatter,只发送对象。有可能默认的toString方法总是以* .xx格式写入BigDecimal对象w.g 134.40?
我使用setScale,但它不适用于例如134.300因为它写134.3而不是134.30
我看到了Using BigDecimal to work with currencies但我有一点点不同的问题。BigDecimal与最小的2个小数位
我给BigDecimal参数的对象给PDF生成库,我不能使用Formatter,只发送对象。有可能默认的toString方法总是以* .xx格式写入BigDecimal对象w.g 134.40?
我使用setScale,但它不适用于例如134.300因为它写134.3而不是134.30
我认为问题是,你已经忘记了的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);
只需使用NumberFormat.getCurrencyInstance().format(n)
并将生成的字符串传递给PDF生成库。
当你尝试时它给了什么? – 2013-04-23 09:24:07
你有没有试过 - “yourBigDecimal.SetScale(2,RoundingMode.HALF_UP);' – 2013-04-23 09:26:29