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