浮点运算丢失精度的解决

在做商业计算处理的时候一定要用BigDecimal的String构造器类型。
BigDecimal bd = new BigDecimal(“String")
可以在Java中封装一个BigDecimal的工具类。

public static BigDecimal add(double d1, double d2){
        BigDecimal b1 = new BigDecimal(String.valueOf(d1));
        BigDecimal b2 = new BigDecimal(String.valueOf(d2));
        return b1.add(b2);
    }

    public static BigDecimal sub(double d1, double d2){
        BigDecimal b1 = new BigDecimal(String.valueOf(d1));
        BigDecimal b2 = new BigDecimal(String.valueOf(d2));
        return b1.subtract(b2);
    }

    public static BigDecimal mul(double d1, double d2){
        BigDecimal b1 = new BigDecimal(String.valueOf(d1));
        BigDecimal b2 = new BigDecimal(String.valueOf(d2));
        return b1.multiply(b2);
    }

    public static BigDecimal div(double d1, double d2){
        BigDecimal b1 = new BigDecimal(String.valueOf(d1));
        BigDecimal b2 = new BigDecimal(String.valueOf(d2));
        return b1.divide(b2);
    }

你可能感兴趣的:(项目)