我看到了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