当我跑步时:
System.out.println(1f - 0.9f);
我得到:
0.100000024
这是因为0.1没有二进制表示。
那为什么当我打印这个:
System.out.println(0.1f);
我得到这个:
0.1
最佳答案
浮点数0.1可以比0.9更好。松散地说,这是因为0.1较小且更接近于其最近的二元有理数。
因此,从1.0中减去时的误差较大。
因此,这两个值不同。
使用0.1的println中的嵌入式格式化试探法可以做得更好
关于java - 如果0.1没有二进制表示,为什么我得到0.1,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30808492/