java 中 封装BigDecimal常用计算类MathUtils

近期项目需要一些统计计算的需求所以封装了一些常用的工具类以供后续使用

import java.math.BigDecimal;

public class MathUtils {

/**
* Long 加法
* @param a
* @param b
* @return
*/
public static Long add(Long a,Long b) {
BigDecimal a1 = new BigDecimal(a);
BigDecimal b1 = new BigDecimal(b);
BigDecimal result = a1.add(b1);
return result.longValue();
}

/**
* 减法
* @param a
* @param b
* @return
*/
public static Long del(Long a,Long b) {
BigDecimal a1 = new BigDecimal(a);
BigDecimal b1 = new BigDecimal(b);
BigDecimal result = a1.subtract(b1);
return result.longValue();
}

/**
* 乘法
* @param a
* @param b
* @return
*/
public static Long cengf(Long a,Long b) {
BigDecimal a1 = new BigDecimal(a);
BigDecimal b1 = new BigDecimal(b);
BigDecimal result = a1.multiply(b1);
return result.longValue();
}
/**
* 除法
* @param a
* @param b
* @return
*/

public static Long cuf(Long a,Long b) {
BigDecimal a1 = new BigDecimal(a);
BigDecimal b1 = new BigDecimal(b);
//BigDecimal.ROUND_UP: 0.334 舍入远离零的舍入模式。
//BigDecimal.ROUND_DOWN: 0.333接近零的舍入模式。
//BigDecimal.ROUND_CEILING:0.334 接近正无穷大的舍入模式
//BigDecimal.ROUND_FLOOR:0.333 接近负无穷大的舍入模式
//BigDecimal.ROUND_HALF_UP:0.333 四舍五入
//BigDecimal.ROUND_HALF_DOWN:0.333 五舍六入
//BigDecimal.ROUND_HALF_EVEN:0.333向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。
//BigDecimal.ROUND_UNNECESSARY 非常精确
BigDecimal result = a1.divide(b1,20,BigDecimal.ROUND_HALF_UP);
return result.longValue();
}

/**
* String 加法
* @param a
* @param b
* @return
*/
public static String add(String a,String b) {
BigDecimal a1 = new BigDecimal(a);
BigDecimal b1 = new BigDecimal(b);
BigDecimal result = a1.add(b1);
return result.toString();
}

/**
* String 减法
* @param a
* @param b
* @return
*/
public static String del(String a,String b) {
BigDecimal a1 = new BigDecimal(a);
BigDecimal b1 = new BigDecimal(b);
BigDecimal result = a1.subtract(b1);
return result.toString();
}

/**
* 乘法
* @param a
* @param b
* @return
*/
public static String cengf(String a,String b) {
BigDecimal a1 = new BigDecimal(a);
BigDecimal b1 = new BigDecimal(b);
BigDecimal result = a1.multiply(b1);
return result.toString();
}
/**
* 除法
* @param a
* @param b
* @return
*/

public static String cuf(String a,String b) {
BigDecimal a1 = new BigDecimal(a);
BigDecimal b1 = new BigDecimal(b);
//BigDecimal.ROUND_UP: 0.334 舍入远离零的舍入模式。
//BigDecimal.ROUND_DOWN: 0.333接近零的舍入模式。
//BigDecimal.ROUND_CEILING:0.334 接近正无穷大的舍入模式
//BigDecimal.ROUND_FLOOR:0.333 接近负无穷大的舍入模式
//BigDecimal.ROUND_HALF_UP:0.333 四舍五入
//BigDecimal.ROUND_HALF_DOWN:0.333 五舍六入
//BigDecimal.ROUND_HALF_EVEN:0.333向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。
//BigDecimal.ROUND_UNNECESSARY 非常精确
BigDecimal result = a1.divide(b1,20,BigDecimal.ROUND_HALF_UP);
return result.toString();
}

/**
* int 加法
* @param a
* @param b
* @return
*/
public static int add(int a,int b) {
BigDecimal a1 = new BigDecimal(a);
BigDecimal b1 = new BigDecimal(b);
BigDecimal result = a1.add(b1);
return result.intValue();
}

/**
* String 减法
* @param a
* @param b
* @return
*/
public static int del(int a,int b) {
BigDecimal a1 = new BigDecimal(a);
BigDecimal b1 = new BigDecimal(b);
BigDecimal result = a1.subtract(b1);
return result.intValue();
}

/**
* 乘法
* @param a
* @param b
* @return
*/
public static int cengf(int a,int b) {
BigDecimal a1 = new BigDecimal(a);
BigDecimal b1 = new BigDecimal(b);
BigDecimal result = a1.multiply(b1);
return result.intValue();
}
/**
* 除法
* @param a
* @param b
* @return
*/

public static int cuf(int a,int b) {
BigDecimal a1 = new BigDecimal(a);
BigDecimal b1 = new BigDecimal(b);
//BigDecimal.ROUND_UP: 0.334 舍入远离零的舍入模式。
//BigDecimal.ROUND_DOWN: 0.333接近零的舍入模式。
//BigDecimal.ROUND_CEILING:0.334 接近正无穷大的舍入模式
//BigDecimal.ROUND_FLOOR:0.333 接近负无穷大的舍入模式
//BigDecimal.ROUND_HALF_UP:0.333 四舍五入
//BigDecimal.ROUND_HALF_DOWN:0.333 五舍六入
//BigDecimal.ROUND_HALF_EVEN:0.333向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。
//BigDecimal.ROUND_UNNECESSARY 非常精确
BigDecimal result = a1.divide(b1,20,BigDecimal.ROUND_HALF_UP);
return result.intValue();
}

}

2人评论了“java 中 封装BigDecimal常用计算类MathUtils”

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部