云淡天高 发表于 2009-2-17 10:58:42

java中double型数据的加减乘除

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();
         }
   }
    上一页
页: [1]
查看完整版本: java中double型数据的加减乘除