使用BIgDecimal进行浮点数的精确计算

   通过BIgDecimal类将浮点数转换为字符串型(string),在进行相应的运算

加法:

public static double add(double a,double b) {
        BigDecimal b1 =new BigDecimal(Double.toString(a));
        BigDecimal b2 =new BigDecimal(Double.toString(b));
        double c = b1.add(b2).doubleValue();
        return c;
    }

减法:

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

测试:

public static void main(String[] args) {
        double a = 1.9;
        double b = 1.7;
        System.out.println("直接进行加法运算:" + (a + b));
        System.out.println("使用BigDecimal类进行加法运算:" + (add(a,b)));
        System.out.println("直接进行减法运算:" + (a - b));
        System.out.println("使用BigDecimal类进行减法运算:" + sub(a,b));
        
    }


直接进行加法运算:3.5999999999999996
使用BigDecimal类进行加法运算:3.6
直接进行减法运算:0.19999999999999996
使用BigDecimal类进行减法运算:0.2

猜你喜欢

转载自www.cnblogs.com/conglingkaishi/p/9207707.html
今日推荐