Bigdecimal的简单应用

写了一个简单的加减乘除运算事例;如下:

 

public class MathUtil {

 

 

/**

* 前一个加上后一个

* 这个方法要先运算再舍入

* @throws Exception 

* */

public static Double add(double a,double b,int scal) throws Exception{

  //将double对象转换成Bigdecimal对象

  BigDecimal add1 = conversionToBigDecimal(a);

  BigDecimal add2 = conversionToBigDecimal(b);

  //BigDecimal的加法运算

  Double result = add1.add(add2)

  //设定将要保留的尾数以及实行的舍入方式 这里采用的四舍五入

  .setScale(scal,BigDecimal.ROUND_HALF_UP)

  //转换成double类型返回

  .doubleValue();

  return result;

}

 

 

/**

* 前一个减去后一个

* @throws Exception 

* */

public static Double subtract(double a,double b,int scal) throws Exception{

BigDecimal subtract1 = conversionToBigDecimal(a);

BigDecimal subtract2 = conversionToBigDecimal(b);

Double result = subtract1.subtract(subtract2).setScale(scal,BigDecimal.ROUND_HALF_UP).doubleValue();

return result;

}

 

/**

* 前一个乘以后一个

* @throws Exception 

* */

public static Double multiply(double a,double b,int scal) throws Exception{

BigDecimal multiply1 = conversionToBigDecimal(a);

BigDecimal multiply2 = conversionToBigDecimal(b);

Double result = multiply1.multiply(multiply2).setScale(scal,BigDecimal.ROUND_HALF_UP).doubleValue();

return result;

}

 

/**

* 前一个除以后一个

*再进行除法运算时需要使用dividde(BigDecimal divisor, int scale, int roundingMode)此方法

*否则会抛出运算无法结束异常

* @throws Exception 

* */

public static Double divide(double a,double b,int scal) throws Exception{

BigDecimal divide1 = conversionToBigDecimal(a);

BigDecimal divide2 = conversionToBigDecimal(b);

Double result = divide1.divide(divide2,scal,BigDecimal.ROUND_HALF_UP).doubleValue();

return result;

}

/**
* 将常规数据类型转换成为BigDecimal
* @throws Exception
* */
public static BigDecimal conversionToBigDecimal(Object obj) throws Exception{
if(obj instanceof Double){
return new BigDecimal(obj.toString());
}else if(obj instanceof Float){
return new BigDecimal(obj.toString());
}else if(obj instanceof Integer){
return new BigDecimal(obj.toString());
}else if(obj instanceof Long){
return new BigDecimal(obj.toString());
}else if(obj instanceof Byte){
return new BigDecimal(obj.toString());
}else if(obj instanceof Short){
return new BigDecimal(obj.toString());
}else{
throw new Exception("不能转换");
}
}

}

 

 

以上只是对Bigdecimal的一些简单的运用,Bigdecimal本身具有强大的功能有待去发掘!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值