这是用整数计算BigDecimal的最好方法吗?它按原样工作,但是我正在考虑最佳实践,应该处理可能的例外情况。
Integer salary = 120000;
BigDecimal incomeRate = BigDecimal.valueOf(30.5).setScale(2, RoundingMode.HALF_UP);
//Formula: salary * incomeRate/100
BigDecimal taxableAmount = incomeRate.multiply(BigDecimal.valueOf(salary)).divide(BigDecimal.valueOf(100)).setScale(2, RoundingMode.HALF_UP);
System.out.println("Income: " + salary);
System.out.println("Payable Tax: " + taxableAmount);
结果: 收入:120000 应交税金:36600.00
答案 0 :(得分:0)
您应该始终使用BigDecimal函数对Integer值进行操作。 整数可以表示为BigDecimal,但并不总是相反,例如,如果尝试将BigDecimal强制转换为整数,如下所示:
myBigDecimal.intValueExact()会在您丢失信息时引发异常。
所以只要照做,然后将Integer转换为BigDecimal,就可以确保不会发生任何不良情况。
您可以检查此link,其中包含有关Java中BigDecimal和BigInteger的大量信息。