常用统计算法JAVA实现 - 工具类(01)

Mutil是一个工具类,  后续的文章的统计方法中会用到;


import java.math.BigDecimal;
/**
 * 
 * @类描述:  一个工具类,为了保证计算准确性,将double之间的运算转换为BigDecimal之间的运算 
 * @项目名称:Statistics
 * @包名: descrptive
 * @类名称:Mutil
 * @创建人:micheal
 * @创建时间:2019年1月15日下午3:09:45
 * @修改人:micheal
 * @修改时间:2019年1月15日下午3:09:45
 * @修改备注:
 * @version v1.0
 * @see 
 * @bug 
 * @Copyright 
 * @mail [email protected]   */ public class Mutil { /** * *  * @描述: 加法
*  * @方法名: add
*  * @param v1
*  * @param v2
*  * @return
*  * @返回类型 double
*  * @创建人 micheal
*  * @创建时间 2019年1月5日下午9:37:50
*  * @修改人 micheal
*  * @修改时间 2019年1月5日下午9:37:50
*  * @修改备注
*  * @since
*  * @throws   */ 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(); } /** * *  * @描述: 减法
*  * @方法名: subtract
*  * @param v1
*  * @param v2
*  * @return
*  * @返回类型 double
*  * @创建人 micheal
*  * @创建时间 2019年1月5日下午9:38:16
*  * @修改人 micheal
*  * @修改时间 2019年1月5日下午9:38:16
*  * @修改备注
*  * @since
*  * @throws   */ public static double subtract(double v1, double v2) { BigDecimal b1 = new BigDecimal(Double.toString(v1)); BigDecimal b2 = new BigDecimal(Double.toString(v2)); return b1.subtract(b2).doubleValue(); } /** * *  * @描述: 乘法
*  * @方法名: mul
*  * @param d1
*  * @param d2
*  * @return
*  * @返回类型 double
*  * @创建人 micheal
*  * @创建时间 2019年1月5日下午9:38:33
*  * @修改人 micheal
*  * @修改时间 2019年1月5日下午9:38:33
*  * @修改备注
*  * @since
*  * @throws   */ public static double multiply(double d1, double d2) {// 进行乘法运算 BigDecimal b1 = new BigDecimal(d1); BigDecimal b2 = new BigDecimal(d2); return b1.multiply(b2).doubleValue(); } /** * *  * @描述: 除法 ,四舍五入
*  * @方法名: div
*  * @param d1
*  * @param d2
*  * @param len ,保留的小数位数
*  * @return
*  * @返回类型 double
*  * @创建人 micheal
*  * @创建时间 2019年1月5日下午9:38:59
*  * @修改人 micheal
*  * @修改时间 2019年1月5日下午9:38:59
*  * @修改备注
*  * @since
*  * @throws   */ public static double divide(double d1, double d2, int len) {// 进行除法运算 BigDecimal b1 = new BigDecimal(d1); BigDecimal b2 = new BigDecimal(d2); return b1.divide(b2, len, BigDecimal.ROUND_HALF_UP).doubleValue(); } /** *  * @描述: 除法,四舍五入取整数 ,例如:5/2=3(2.5四舍五入); 5/3=2(1.6四舍五入);
 * @方法名: div
 * @param d1
 * @param d2
 * @return
 * @返回类型 double
 * @创建人 micheal
 * @创建时间 2019年1月5日下午10:54:51
 * @修改人 micheal
 * @修改时间 2019年1月5日下午10:54:51
 * @修改备注
 * @since
 * @throws
  */ public static double divide(double d1, double d2) {// 进行除法运算 BigDecimal b1 = new BigDecimal(d1); BigDecimal b2 = new BigDecimal(d2); return b1.divide(b2, BigDecimal.ROUND_HALF_UP).doubleValue(); } /** * *  * @描述: 四舍五入
*  * @方法名: round  * @param d
*  * @param len
*  * @return
*  * @返回类型 double
*  * @创建人 micheal
*  * @创建时间 2019年1月5日下午9:39:13
*  * @修改人 micheal
*  * @修改时间 2019年1月5日下午9:39:13
*  * @修改备注
*  * @since
*  * @throws
*   */ public static double round(double d, int len) { BigDecimal b1 = new BigDecimal(d); BigDecimal b2 = new BigDecimal(1); // 任何一个数字除以1都是原数字 // ROUND_HALF_UP是BigDecimal的一个常量,表示进行四舍五入的操作 return b1.divide(b2, len, BigDecimal.ROUND_HALF_UP).doubleValue(); } public static void main(String[] args){ double a = 10; double b = 3; System.out.println(divide(a,b,2)); System.out.println(divide(a,b)); } }

 

你可能感兴趣的:(统计算法)