使用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

 

posted @ 2018-06-21 10:45  HJ0101  阅读(326)  评论(0编辑  收藏  举报