1.float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合。但是,商业计算往往要求结果精确,这时候BigDecimal就派上大用场啦。
2.BigDecimal加减乘除运算
对于常用的加,减,乘,除,BigDecimal类提供了相应的成员方法。
public BigDecimal add(BigDecimal value); //加法
public BigDecimal subtract(BigDecimal value); //减法
public BigDecimal multiply(BigDecimal value); //乘法
public BigDecimal divide(BigDecimal value); //除法
大概的用法如下
public static void main(String[] args)
}
BigDecimal a = new BigDecimal(“4.5”);
BigDecimal b = new BigDecimal(“1.5”);
System.out.println(“a + b =” + a.add(b));
System.out.println(“a - b =” + a.subtract(b));
System.out.println(“a * b =” + a.multiply(b));
System.out.println(“a / b =” + a.divide(b));
}
3.举个例子
比较坑的是,list里面将要存储的数据,数据类型往往习惯成自然就设置成Long了,然后就报错了。本来计算结果,可以是很多位的小数,是很精确的。就不要把计算结果取longValue()了,这样,就转成整数了,就不精确了。解决方法,将list将要存储的数据,数据类型设置成BigDecimal就可以了
4.比较大小
compareTo方法
结果是: -1:小于; 0 :等于; 1 :大于;