我正在尝试使用 BigDecimal 来计算 GST 税率。
税费计算应为 1/11 * 商品价格。
所以我想我应该使用 BigDecimal 来给出最准确的表示。但由于某种原因,费率总是计算为零。
这是我尝试过的:
BigDecimal TAX_RATE = new BigDecimal("1")
.divide(new BigDecimal("11"), BigDecimal.ROUND_HALF_UP);
BigDecimal bd = new BigDecimal("10").multiply(TAX_RATE);
// gives 0
有谁知道为什么吗?
最佳答案
尝试
BigDecimal TAX_RATE = new BigDecimal("1").divide(new BigDecimal("11"), 500, BigDecimal.ROUND_HALF_UP);
第二个参数指定精度。默认情况下它为零,因此您最终将所有内容四舍五入为整数。
关于java - 大十进制除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27454846/