package com.moral.util;
|
|
import java.math.BigDecimal;
|
|
/**
|
* @ClassName MathUtils
|
* @Description 运算工具类
|
* @Author 陈凯裕
|
* @Date 2021/9/13 9:54
|
* @Version TODO
|
**/
|
public class MathUtils {
|
|
/**
|
* @Description: 计算double类型加法
|
* @Param: [v1, v2]
|
* @return: double
|
* @Author: 陈凯裕
|
* @Date: 2021/9/13
|
*/
|
public static double add(double v1, double v2) {
|
BigDecimal b1 = new BigDecimal(Double.toString(v1));
|
BigDecimal b2 = new BigDecimal(Double.toString(v2));
|
return b1.add(b2).doubleValue();
|
}
|
|
|
/**
|
* @Description: 计算double类型减法
|
* @Param: [v1, v2]
|
* @return: double
|
* @Author: 陈凯裕
|
* @Date: 2021/9/13
|
*/
|
public static double sub(double v1, double v2) {
|
BigDecimal b1 = new BigDecimal(Double.toString(v1));
|
BigDecimal b2 = new BigDecimal(Double.toString(v2));
|
return b1.subtract(b2).doubleValue();
|
}
|
|
/**
|
* @Description: 计算double类型乘法
|
* @Param: [v1, v2]
|
* @return: double
|
* @Author: 陈凯裕
|
* @Date: 2021/9/13
|
*/
|
public static double mul(double v1, double v2) {
|
BigDecimal b1 = new BigDecimal(Double.toString(v1));
|
BigDecimal b2 = new BigDecimal(Double.toString(v2));
|
return b1.multiply(b2).doubleValue();
|
}
|
|
/**
|
* @Description: 除法,accurate为保留小数位
|
* @Param: [a, b, accurate]
|
* @return: double
|
* @Author: 陈凯裕
|
* @Date: 2021/11/2
|
*/
|
public static double division(double a, double b,int accurate) {
|
if (accurate < 0) {
|
throw new RuntimeException("精确度必须是正整数或零");
|
}
|
BigDecimal b1 = new BigDecimal(a);
|
BigDecimal b2 = new BigDecimal(b);
|
return b1.divide(b2, accurate, BigDecimal.ROUND_HALF_UP).doubleValue();
|
}
|
}
|