package com.cnd3b.utility; import java.math.BigDecimal; public class Math { /** * 加法 * * @param arg0 * @param arg1 * @return */ public static double add(double arg0, double arg1) { BigDecimal b1 = new BigDecimal(Double.toString(arg0)); BigDecimal b2 = new BigDecimal(Double.toString(arg1)); return b1.add(b2).doubleValue(); } /** * 减法 * * @param arg0 被减数 * @param arg1 减数 * @return */ public static double sub(double arg0, double arg1) { BigDecimal b1 = new BigDecimal(Double.toString(arg0)); BigDecimal b2 = new BigDecimal(Double.toString(arg1)); return b1.subtract(b2).doubleValue(); } /** * 乘法 * * @param arg0 * @param arg1 * @return */ public static double mul(double arg0, double arg1) { BigDecimal b1 = new BigDecimal(Double.toString(arg0)); BigDecimal b2 = new BigDecimal(Double.toString(arg1)); return b1.multiply(b2).doubleValue(); } /** * 乘法 * * @param arg0 * @param arg1 * @return */ public static double mul(double arg0, double arg1, int scale) { BigDecimal b1 = new BigDecimal(Double.toString(arg0)); BigDecimal b2 = new BigDecimal(Double.toString(arg1)); return round(b1.multiply(b2).doubleValue(), scale); } /** * 除法,默认保留6位 * @param arg0 * @param arg1 * @return */ public static double div(double arg0, double arg1) { return div(arg0, arg1, 6); } /** * 除法 * * @param arg0 被除数 * @param arg1 除数 * @param scale 需要精确到小数点以后几位 * @return */ public static double div(double arg0, double arg1, int scale) { if (scale < 0) { throw new IllegalArgumentException("精度不能小于0"); } BigDecimal b1 = new BigDecimal(Double.toString(arg0)); BigDecimal b2 = new BigDecimal(Double.toString(arg1)); return b1.divide(b2, scale, BigDecimal.ROUND_HALF_UP).doubleValue(); } /** * 四舍五入处理。 * * @param arg0 需要四舍五入的数字 * @param scale 小数点后保留几位 * @return 四舍五入后的结果 */ public static double round(double arg0, int scale) { if (scale < 0) { throw new IllegalArgumentException("保留位数不能小于0"); } BigDecimal b = new BigDecimal(Double.toString(arg0)); BigDecimal one = new BigDecimal("1"); return b.divide(one, scale, BigDecimal.ROUND_HALF_UP).doubleValue(); } /** * 获取随机数 * @return */ public static double random() { return java.lang.Math.random(); } }