精確的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