Discuss / Java / BigDecimal计算出的结果会有误差吗?为啥余数部分不正确

BigDecimal计算出的结果会有误差吗?为啥余数部分不正确

Topic source

浩子_No1

#1 Created at ... [Delete] [Delete and Lock User]
public class Main {
    public static void main(String[] args) {
        BigDecimal n = new BigDecimal("12.345");
        BigDecimal m = new BigDecimal("0.12");
        BigDecimal[] dr = n.divideAndRemainder(m);
        System.out.println(dr[0]); // 102
        System.out.println(dr[1]); // 0.105
    }
}

我用计算器算了下应该是102.875才对,为啥代码计算出的余数部分是0.105

jo白灯

#2 Created at ... [Delete] [Delete and Lock User]

都没算错,是你数学概念没弄清。

余数是0.105,除数是0.12,0.105÷0.12=0.875,就是说还余0.875个除数。


  • 1

Reply