首页 >> 文档 >> Java专题

java中double型的加减乘除运算

发布日期:2008-06-30最近更新:2008-06-30来源:BHCODE作者:

以下是代码片段:

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();

    }

 

}

本周推荐
MORE
热点关注
MORE