我尝试做一些计算以获得税收价值。这项工作,但它显示了很多。
Price it's a BigDecimal
BigDecimal tps = price().multiply(tpsRate());
tps.setScale(2, BigDecimal.ROUND_UP);
BigDecimal tvq = price().multiply(tvqRate());
tvq.setScale(2, BigDecimal.ROUND_UP);
BigDecimal tps = report.getPrice().multiply(report.getTpsRate());
tps.setScale(2, BigDecimal.ROUND_UP);
BigDecimal tvq = report.getPrice().multiply(report.getTvqRate());
tvq.setScale(2, BigDecimal.ROUND_UP);
如果价格是200.00 tvq它计算到14.0000 tps计算到18.0000
price().add(tvq).add(tps)
总共232.0000
我想得到14.00,18.00和232.00
答案 0 :(得分:2)
BigDecimal和String一样,是不可变的。这意味着您无法更改值,只返回新值。
tvq.setScale(2, BigDecimal.ROUND_UP);
这会计算一个带有两个小数位的BigDecimal,但是您要丢弃它。我怀疑你想保留返回的值。
tvq = tvq.setScale(2, BigDecimal.ROUND_UP);