3*0.1 == 0.3 将会返回什么?true 还是 false?

false,因为有些浮点数不能完全精确的表示出来
例如
public class floatceshi {
    public static void main(String[] args) {
        System.out.println(3 * 0.1);
        System.out.println(4 * 0.1);
        System.out.println(3 * 0.1 == 0.3);
        System.out.println(13 * 0.1 == 1.3);
        System.out.println(9 * 0.1 == 0.9);
        System.out.println(3 * 0.1 / 3);
    }
}

结果:

0.30000000000000004
0.4
false
true
true
0.10000000000000002

知乎上的一个解释

原文地址:https://www.cnblogs.com/zhuyeshen/p/11005213.html