所以我有这个代码:
public BigDecimal calculateEWT (BigDecimal amount, boolean vatInclusive, int scale)
{
if (isZeroTax())
return Env.ZERO;
BigDecimal rateTax = getRate().divide(ONEHUNDRED, 12, BigDecimal.ROUND_HALF_UP);
BigDecimal rateEWT = getcus_tax_EWTRate().divide(ONEHUNDRED, 12, BigDecimal.ROUND_HALF_UP);
rateTax = rateTax.add(Env.ONE);
BigDecimal ewt = null;
if (!vatInclusive) {
BigDecimal base = amount.divide(rateTax, 12, BigDecimal.ROUND_HALF_UP);
ewt = base.multiply(rateEWT);
System.out.println("EWT VAT not inclusive: " + ewt);
} else {
BigDecimal base = amount.multiply (rateTax);
ewt = base.multiply(rateEWT);
System.out.println("EWT VAT inclusive: " + ewt);
}
BigDecimal finalEWT = ewt.setScale(scale, BigDecimal.ROUND_HALF_UP);
System.out.println("Final EWT: " + finalEWT);
return finalEWT;
}
而 System.out.println("EWT 不含增值税:" + ewt); 打印出“EWT VAT not inclusive: 0E-12”,因为 finalEWT 返回 0.00 而弄乱了其他方程
作为示例值,假设金额 = 1000,rateTax 为 1.12,rateEWT 为 0.05
有没有办法以正常的十进制形式打印出来?我需要它仍然是 BigDecimal 格式,因为我会将答案插入数据库。