私はこのコードを持っています
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
ここで、出力された 2 つの数値は明らかにNOT EQUALであるのに、なぜ がl == d
返されるのtrue
でしょうか?