だから私はこのコードを持っています:
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 VATは包括的ではありません:" + ewt); 「EWTVAT非包括的:0E-12」を出力し、finalEWTが0.00を返すため、他の方程式を台無しにします。
値の例として、amount = 1000、rateTaxが1.12、rateEWTが0.05であると仮定します。
通常の10進数形式で印刷する方法はありますか?データベースに回答を挿入するので、BigDecimal形式のままにする必要があります。