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

Posted yunfang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了精确的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();
    }

}


备忘  有问题请大神指证


以上是关于精确的double加减乘除运算工具类的主要内容,如果未能解决你的问题,请参考以下文章

BigDecimal加减乘除运算整合工具类

BigDecimal 精准加减乘除

java BigDecimal实现精确加减乘除运算

java工具类-BigDecimal

Java 避免精度丢失之BigDecimal 运算

数字精确运算BigDecimal经常用法