Possible Duplicate:
Addition for BigDecimal
我觉得我错过了一些明显的东西,但无法弄清楚它是什么。我正在尝试使用 BigDecimal
获取两个数字相除的小数部分。一个非常简单的情况,1.00 除以 3.00 应该是 0.(3) 重复。然而,我一直得到 1.00 的结果。
BigDecimal num = new BigDecimal(1.00).setScale(2);
BigDecimal divisor = new BigDecimal(3.00).setScale(2);
num.divide(divisor, BigDecimal.ROUND_HALF_UP);
System.out.print(num);
我的结果是 1.00,但我不明白为什么?
最佳答案
num.divide
的结果被忽略。您需要将其设置回变量
BigDecimal num = new BigDecimal(1.00).setScale(2);
BigDecimal divisor = new BigDecimal(3.00).setScale(2);
BigDecimal result = num.divide(divisor, BigDecimal.ROUND_HALF_UP);
System.out.print(result);
这会打印0.33
关于java - 意外的 BigDecimal 结果。 1 除以 3 结果为 1。不确定为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14202246/