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();
}

}

java 中 封装BigDecimal常用计算类MathUtils-上流阁

*文章为作者独立观点,不代表上流阁立场
本文由 江风成 授权 上流阁 发表,并经上流阁编辑。转载此文章须经作者同意,并请附上出处(上流阁)及本页链接。原文链接https://www.o6c.com/java/2021/01/29/1468.html
发表评论

2 条评论
相关文章
windows BAT 文件 多个命令同步执行
windows BAT 文件 多个命令同步执行
JDBC原生链接Mysql数据根据表映射生成bean实体类
JDBC原生链接Mysql数据根据表映射生成be…
Linux CentOS 7.2版 JDK 安装
Linux CentOS 7.2版 JDK 安装
JS、PHP、JAVA正则表达式屏蔽关键字的方法
JS、PHP、JAVA正则表达式屏蔽关键字的方法
java中map的分类和常见的情况
java中map的分类和常见的情况
为什么重写equals还要重写hashcode?
为什么重写equals还要重写hashcode?
javaweb开发程序员php开发,微信开发。接受定制开发

最新评论