yyds2024 2024-12-06 15:37:39

加减乘除工具类

public class BigDecimalUtils {

    /**
     * 加法运算
     * @param m1
     * @param m2
     */
    public static double add(String m1, String m2) {
        BigDecimal p1 = new BigDecimal(m1);
        BigDecimal p2 = new BigDecimal(m2);
        return p1.add(p2).doubleValue();
    }

    /**
     * 加法运算(保留小数)
     * @param m1
     * @param m2
     * @param scale
     */
    public static double add(String m1, String m2, int scale) {
        BigDecimal p1 = new BigDecimal(m1);
        BigDecimal p2 = new BigDecimal(m2);
        return p1.add(p2).setScale(scale, BigDecimal.ROUND_HALF_UP).doubleValue();
    }

    /**
     * 减法运算
     * @param m1
     * @param m2
     */
    public static double subtract(String m1, String m2) {
        BigDecimal p1 = new BigDecimal(m1);
        BigDecimal p2 = new BigDecimal(m2);
        return p1.subtract(p2).doubleValue();
    }

    /**
     * 减法运算(保留小数)
     * @param m1
     * @param m2
     * @param scale
     */
    public static double subtract(String m1, String m2, int scale) {
        BigDecimal p1 = new BigDecimal(m1);
        BigDecimal p2 = new BigDecimal(m2);
        return p1.subtract(p2).setScale(scale, BigDecimal.ROUND_HALF_UP).doubleValue();
    }

    /**
     * 乘法运算
     * @param m1
     * @param m2
     */
    public static double multiply(String m1, String m2) {
        BigDecimal p1 = new BigDecimal(m1);
        BigDecimal p2 = new BigDecimal(m2);
        return p1.multiply(p2).doubleValue();
    }

    /**
     * 乘法运算(保留小数)
     * @param m1
     * @param m2
     * @param scale
     */
    public static double multiply(String m1, String m2, int scale) {
        BigDecimal p1 = new BigDecimal(m1);
        BigDecimal p2 = new BigDecimal(m2);
        return p1.multiply(p2).setScale(scale, BigDecimal.ROUND_HALF_UP).doubleValue();
    }

    /**
     * 除法运算
     * @param   m1
     * @param   m2
     * @param   scale
     */
    public static double divide(String m1, String m2, int scale) {
        if (scale < 0) {
            throw new CommonException("分母不能为0");
        }
        BigDecimal p1 = new BigDecimal(m1);
        BigDecimal p2 = new BigDecimal(m2);
        return p1.divide(p2, scale, BigDecimal.ROUND_HALF_UP).doubleValue();
    }

}

评论

首页 - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.3. UTC+08:00, 2024-12-12 18:23
浙ICP备14020137号-1 $访客地图$