小数计算存在的问题
double a = 0.1;
double b = 0.2;
double c = a + b;
System.out.println(c);
对象的构造
BigDecimal a = new BigDecimal("0.1");
BigDecimal b = new BigDecimal("0.2");
add 加法
BigDecimal c = a.add(b);
System.out.println(c);
subtract 减法
BigDecimal c = b.subtract(a);
System.out.println(c);
multiply 乘法
BigDecimal c = a.multiply(b);
System.out.println(c);
divide 除法
BigDecimal c = a.divide(b, 2);
System.out.println(c);
BigDecimal f = a.divide(b, 2, RoundingMode.HALF_UP); //保留2位小数,四舍五入
compareTo 比较大小
BigDecimal a = new BigDecimal("123.456");
BigDecimal b = new BigDecimal("789.012");
int result = a.compareTo(b); //比较a和b的大小,返回-1(小于)、0(等于)或1(大于)
toString 转字符串
BigDecimal a = new BigDecimal("123.456");
String str = a.toString(); //转换为字符串形式,"123.456"