Ho questo codiceottenere risultati inaspettati quando il tipo di fusione tra il lungo e doppio
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);
}
}
Ora, il risultato che produce è un pò inaspettato, ma ancora una volta, io non sono molto esperto con le conversioni di tipo.
uscita
9223372036854775807
9.223372036854776E18
true
Ora, i due numeri stampati sono chiaramente Non uguale, quindi perché fa l == d
ritorno true
?