java封装类运算_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();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值