为什么if
条件会在此程序中评估为true
? 10
如何等同于10.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");
}
}
}
答案 0 :(得分:11)
由于Java语言规范第5.6.2节中描述的binary numeric promotion规则。这些规则适用于不同类型数字的二进制运算。它说:
如果任一操作数的类型为double,则另一个操作数转换为double。
答案 1 :(得分:3)
int
将转换为double
。请参阅此https://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.21.1