在对于精确计算的要求下请不要使用float和double,这2个基本类型的出现就是用来快速的近试算法。不信你试试:
System.out.println(1.0-9*0.1);
结果是:0.09999999999999998
这样结果是没有人能够接受的。
如果需要精确计算用BigDecimal类或是int,long等类型。
在对于精确计算的要求下请不要使用float和double,这2个基本类型的出现就是用来快速的近试算法。不信你试试:
System.out.println(1.0-9*0.1);
结果是:0.09999999999999998
这样结果是没有人能够接受的。
如果需要精确计算用BigDecimal类或是int,long等类型。