我有这个代码
public class LimitTest{
public static void main(String[] args){
long l;
double d;
l = 9223372036854775807L;// The largest number a long can hold.
d = l;
System.out.println(l);
System.out.println(d);
System.out.println(l == d);
}
}
现在,它产生的结果有点出乎意料,但同样,我对类型转换不是很有经验。
输出
9223372036854775807
9.223372036854776E18
true
现在,打印的两个数字显然不等于,那么为什么l == d
返回true
?