BigDecimal类型加减乘除运算

发表时间:2018-07-13 15:48:09点击:1114

private static final int DEF_DIV_SCALE = 10;

    /**
     * b1 加 b2
     */
    public BigDecimal add(BigDecimal b1,BigDecimal b2){
        BigDecimal bigDecimal = BigDecimal.valueOf(b1.add(b2).doubleValue());
        return bigDecimal;
    }

    /**
     * b1减去b2
     */
    public BigDecimal sub(BigDecimal b1,BigDecimal b2){
        BigDecimal bigDecimal = BigDecimal.valueOf(b1.subtract(b2).doubleValue());
        return bigDecimal;
    }

    /**
     * b1除以b2
     * @param b1
     * @param b2
     * @return
     */
    public BigDecimal div(BigDecimal b1,BigDecimal b2){
        BigDecimal bigDecimal = BigDecimal.valueOf(div(b1,b2,DEF_DIV_SCALE));
        return bigDecimal;
    }

    /**
     * b1 乘以 b2
     * @param b1
     * @param b2
     * @return
     */
    public BigDecimal mul(BigDecimal b1,BigDecimal b2){
        BigDecimal bigDecimal = BigDecimal.valueOf(b1.multiply(b2).doubleValue());
        return bigDecimal;
    }

    public static double div(BigDecimal b1,BigDecimal b2,int scale){
        if(scale<0){
            throw new IllegalArgumentException("The scale must be a positive integer or zero");
        }
        return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
    }

*原创文章,转载请注明出处

下一篇:春宵