java中double型数据的加减乘除

来源:     时间:2008-07-04     浏览量:61
  public class Arith {
  private static final int DEF_DIV_SCALE = 10;
  /**
  * 两个Double数相加
  * @param v1
  * @param v2
  * @return Double
  */
  public static Double add(Double v1,Double v2){
  BigDecimal b1 = new BigDecimal(v1.toString());
  BigDecimal b2 = new BigDecimal(v2.toString());
  return b1.add(b2).doubleValue();
  }
  /**
  * 两个Double数相减
  * @param v1
  * @param v2
  * @return Double
  */
  public static Double sub(Double v1,Double v2){
  BigDecimal b1 = new BigDecimal(v1.toString());
  BigDecimal b2 = new BigDecimal(v2.toString());
  return b1.subtract(b2).doubleValue();
  }
  /**
  * 两个Double数相乘
  * @param v1
  * @param v2
  * @return Double
  */
  public static Double mul(Double v1,Double v2){
  BigDecimal b1 = new BigDecimal(v1.toString());
  BigDecimal b2 = new BigDecimal(v2.toString());
  return b1.multiply(b2).doubleValue();
  }
  /**
  * 两个Double数相除
  * @param v1
  * @param v2
  * @return Double
  */
  public static Double div(Double v1,Double v2){
  BigDecimal b1 = new BigDecimal(v1.toString());
  BigDecimal b2 = new BigDecimal(v2.toString());
  return b1.divide(b2,DEF_DIV_SCALE,BigDecimal.ROUND_HALF_UP).doubleValue();
  }
  /**
  * 两个Double数相除,并保留scale位小数
  * @param v1
  * @param v2
  * @param scale
  * @return Double
  */
  public static Double div(Double v1,Double v2,int scale){
  if(scale<0){
  throw new IllegalArgumentException(
  "The scale must be a positive integer or zero");
  }
  BigDecimal b1 = new BigDecimal(v1.toString());
  BigDecimal b2 = new BigDecimal(v2.toString());
  return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
  }
  }
→ 查看关于“计算机/IT认证”的全部考试资料
沈阳优网互联信息服务有限公司 版权所有 辽ICP备08007732号
Copyright ©2006-2007 Ueu5.com All Rights Reserved