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

时间:2023-03-08 21:04:37
精确的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();
} }

备忘  有问题请大神指证