写了一个简单的加减乘除运算事例;如下:
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的一些简单的运用,Bigdecimal本身具有强大的功能有待去发掘!