精确的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();
    }

}

备忘  有问题请大神指证

原文地址:https://www.cnblogs.com/yunfang/p/10414466.html

时间: 2024-10-14 04:40:22

精确的double加减乘除运算工具类的相关文章

精度更高的double类型计算工具类(借助BigDecimal类型)

/** * 提供精確的加法運算 * @param args */ 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

史上最全的开发工具类

    API 银行卡管理 → BankCheck checkBankCard : 校验银行卡卡号是否合法 getBankCardCheckCode: 从不含校验位的银行卡卡号采用 Luhm 校验算法获得校验位 getNameOfBank : 通过银行卡的前六位确定判断银行开户行及卡种 SharePreference缓存数据 →AppSharePreferenceMgr put : 保存数据的方法 get : 获取数据的方法 putImage: 保存图片到SharedPreferences ge

史上最全的开发工具类(转)

     API 银行卡管理 → BankCheck checkBankCard : 校验银行卡卡号是否合法getBankCardCheckCode: 从不含校验位的银行卡卡号采用 Luhm 校验算法获得校验位getNameOfBank : 通过银行卡的前六位确定判断银行开户行及卡种 SharePreference缓存数据 →AppSharePreferenceMgr put : 保存数据的方法get : 获取数据的方法putImage: 保存图片到SharedPreferencesgetIma

BigDecimal工具类处理精度计算

1 /** 2 * Created by My_coder on 2017-07-27. 3 * 加减乘除计算工具类 4 */ 5 public class BigDecimalUtil { 6 private BigDecimalUtil() { 7 } 8 9 /** 10 * 加 11 */ 12 public static BigDecimal add(Double v1, Double v2){ 13 BigDecimal b1 = new BigDecimal(v1.toString

由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 确的浮点数运算,包括加减乘除和四舍五入

public class Arith { /** * 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 确的浮点数运算,包括加减乘除和四舍五入. */ // 默认除法运算精度 private static final int DEF_DIV_SCALE = 10; // 这个类不能实例化 private Arith() { } /** * 提供精确的加法运算. * * @param v1 * 被加数 * @param v2 * 加数 * @return 两个参数的和 */ p

精确计算工具类,提供加减乘除的计算

package com.ljq.util; import java.math.BigDecimal; /** * 精确计算工具类,提供加减乘除的计算 * * @author jqlin */ public class CompuUtils { /**小数点后保留的位数*/ public final static int SCALE = 5; /** 0 */ public final static int ZERO = 0; /** * BigDecimal大小比较 * * @param a *

工具类---提供精确的浮点数运算

import java.math.BigDecimal; /** * 由于Java的简单类型不能够精确的对浮点数进行运算, 这个工具类提供精 确的浮点数运算,包括加减乘除和四舍五入. */ public class Arith { // 默认除法运算精度.除法的时候,默认的精确到小数点后10位 private static final int DEF_DIV_SCALE = 10; // 这个类不能实例化 private Arith() { } /** * 提供精确的加法运算. * * @par

BigDecimal实现精确加减乘除运算

BigDecimal一共有4个够造方法,让我先来看看其中的两种用法: 第一种:BigDecimal(double val)Translates a double into a BigDecimal. 第二种:BigDecimal(String val)Translates the String repre sentation of a BigDecimal into a BigDecimal. 使用BigDecimal要用String来够造,要做一个加法运算,需要先将两个浮点数转为String,

java精确计算工具类

import java.math.BigDecimal; import java.math.RoundingMode; import java.math.BigDecimal; import java.text.DecimalFormat; import org.springframework.stereotype.Component; /** * 工具类 - 运算 */ @Component public class ArithUtils { // 默认除法运算精度 private stati