如果你认为 if ( 0.1*0.1 == 0.01 ) 的结果是true
那你就错了!!
以下计算得到的结果:
System.out.println(0.1*0.1);
System.out.println(1.0-0.9);
0.010000000000000002
0.09999999999999998
原因:
浮点数数值采用二进制表示,在二进制系统之无法精确表示1/10,就像十进制无法表示1/3一样,
这样就产生了误差,如果想尽量避免误差,就应用BigDecimal类来运算,尤其是在金融领域.