如果你认为 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类来运算,尤其是在金融领域.

&spm=1001.2101.3001.5002&articleId=7686517&d=1&t=3&u=1dfae7bbb4c242469ba4af6d3e1a2efd)
3万+

被折叠的 条评论
为什么被折叠?



