(0)double float计算近似准确,所以想完全精确的结果使用BigDecimal。
(1)商业计算使用BigDecimal。
(2)尽量使用参数类型为String的构造函数。
(1)商业计算使用BigDecimal。
(2)尽量使用参数类型为String的构造函数。
(3) BigDecimal都是不可变的(immutable)的,在进行每一步运算时,都会产生一个新的对象,所以在做加减乘除运算时千万要保存操作后的值。
//构造方法是float和double,结果不可预知
BigDecimal a=new BigDecimal(1.11);
System.out.println(a);
//最好使用string类型的构造方法
BigDecimal b=new BigDecimal("1.11");
System.out.println(b);
BigDecimal c=new BigDecimal("2.22");
b.add(c);
//输出还是b原来的值,因为返回结果是一个新的对象,原来的对象不变,BigDecimal的不变特性
System.out.println(b);
//将b更新为运算之后的结果
b=b.add(c);
System.out.println(b);