1. 程式人生 > >java double型別-加減乘除高精度運算

java double型別-加減乘除高精度運算

double型別-加減乘除高精度運算

// 進行加法運算

 private  double add(double v1,double v2){  

        BigDecimal b1 = new BigDecimal(Double.toString(v1));  
        BigDecimal b2 = new BigDecimal(Double.toString(v2));  
        return b1.add(b2).doubleValue();  

    }  

// 進行減法運算

    private double subtract(double v1,double v2){
        BigDecimal b1 = new BigDecimal(Double.toString(v1));  
        BigDecimal b2 = new BigDecimal(Double.toString(v2));  
        return b1.subtract(b2).doubleValue();  

    }

// 進行加法運算

    public double mul(double d1, double d2){        // 進行乘法運算
         BigDecimal b1 = new BigDecimal(d1);
         BigDecimal b2 = new BigDecimal(d2);
        return b1.multiply(b2).doubleValue();

     }

// 進行除法運算

    public  double div(double d1,double d2,int len) {// 進行除法運算
         BigDecimal b1 = new BigDecimal(d1);
         BigDecimal b2 = new BigDecimal(d2);
        return b1.divide(b2,len,BigDecimal.ROUND_HALF_UP).doubleValue();

     }

// 進行四捨五入操作

    public  double round(double d,int len) {     // 進行四捨五入操作
         BigDecimal b1 = new BigDecimal(d);
         BigDecimal b2 = new BigDecimal(1);
        // 任何一個數字除以1都是原數字
        // ROUND_HALF_UP是BigDecimal的一個常量,表示進行四捨五入的操作
        return b1.divide(b2, len,BigDecimal.ROUND_HALF_UP).doubleValue();
     }