我正试图用BigDecimal来计算消费税税率。
税额的计算应该是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有人知道为什么吗?
发布于 2014-12-13 02:36:21
试一试
BigDecimal TAX_RATE = new BigDecimal("1").divide(new BigDecimal("11"), 500, BigDecimal.ROUND_HALF_UP);第二个参数指定精度。默认情况下为零,所以最后将所有内容舍入到int中。
发布于 2014-12-13 02:23:28
在您的例子中,TAX_RATE由于BigDecimal.ROUND_HALF_UP而等于0。请参阅UP
https://stackoverflow.com/questions/27454846
复制相似问题