等号运算符的微妙差别

3
为什么这个程序中if条件语句会被评估为true1010.0是如何等效的?
 public class Test {
     public static void main(String[] args) {
         int i = 10;
         double d = 10.0;

         if (i == d) {
             System.out.println("hi");
         } else {
             System.out.println("bye");
         }
    }
}

i == d 相当于 (double) i == di - d == 0 - Peter Lawrey
2个回答

11
由于Java语言规范第5.6.2节中描述的二进制数值提升规则,这些规则适用于不同类型数字的二元操作。它说:
如果其中一个操作数是double类型,则另一个操作数将被转换为double类型。

3

本章涉及到</>/<=/>=操作,而不是== - Tagir Valeev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接