精确的double加减乘除运算工具类


import java.math.BigDecimal;


/**
 * 精确的double加减乘除运算
 * @author cyf
 *
 */
public class DoubleUtil {
    
     /**
     * 提供精确的加法运算。
     *
     * @param v1
     *            被加数
     * @param v2
     *            加数
     * @return 两个参数的和
     */

    public static 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();
    }

    /**
     * 提供精确的减法运算。
     *
     * @param v1
     *            被减数
     * @param v2
     *            减数
     * @return 两个参数的差
     */

    public static double sub(double v1, double v2)
    {
        BigDecimal b1 = new BigDecimal(Double.toString(v1));
        BigDecimal b2 = new BigDecimal(Double.toString(v2));
        return b1.subtract(b2).doubleValue();
    }

    /**
     * 相除
     */

    /**
     * * 两个Double数相除 *
     *
     * @param v1 *
     * @param v2 *
     * @return Double
     */
    public static int div(double v1, double v2) {
        BigDecimal b1 = new BigDecimal(v1+"");
        BigDecimal b2 = new BigDecimal(v2+"");
        return (int)b1.divide(b2, 1, BigDecimal.ROUND_HALF_UP)
                .doubleValue();
    }
    
    
    
    /**
     *   提供精确的乘法运算。
     *   @param   v1   被乘数
     *   @param   v2   乘数
     *   @return   两个参数的积
     */

    public   static   double   mul(double   v1,double   v2){
        BigDecimal   b1   =   new   BigDecimal(Double.toString(v1));
        BigDecimal   b2   =   new   BigDecimal(Double.toString(v2));
        return   b1.multiply(b2).doubleValue();
    }

}


备忘  有问题请大神指证


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM