Mam ten kodGetting nieoczekiwane wyniki, gdy typ odlewania między długim i podwójnym
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);
}
}
Teraz wynikiem produkuje jest dosyć nieoczekiwany, ale znowu, nie jestem bardzo doświadczony z typu konwersji.
Wyjście
9223372036854775807
9.223372036854776E18
true
Teraz, dwa numery drukowane są wyraźnie NIE RÓWNE, więc dlaczego l == d
powrotną true
?