packagecom.shopping.test;importjava.math.BigDecimal;/*** 精确的浮点运算
* 为什么要使用BigDecimal类型呢?
* BigDecimal可以进行超过16位有效位的数值的准确运算,而我们所熟知的浮点型float的精度为6-7位有效数字,Double类型则为15-16位有效数字。
* 这不是关键,浮点型变量在进行计算的时候会出现丢失精度的问题,所以我们为了保证数据的准确性,需要用到BigDecimal去进行高精度的运算。*/
public classOperationUtil {private static final int DEF_DIV_SCALE=10;//默认除法运算精度
privateOperationUtil(){
}/*** 精确的加法运算
*@paramv1 被加数
*@paramv2 加数
*@return两个参数的和*/
public static double add(double v1 ,doublev2){
BigDecimal b1= newBigDecimal(Double.toString(v1));
BigDecimal b2= newBigDecimal(Double.toString(v2));returnb1.add(b2).doubleValue();
}/*** 精确的减法运算
*@paramv1 被减数
*@paramv2 减数
*@return两个参数的差*/
public static double sub(double v1 ,doublev2){
BigDecima