Quando si eseguono operazioni (compresi i confronti) con due diversi tipi numerici, Java eseguirà una conversione di ampliamento implicita. Ciò significa che quando si confronta un double
con un int
, lo int
viene convertito in un double
in modo che Java possa quindi confrontare i valori come due double
s. Quindi la risposta breve è sì, il confronto tra int e double è valido, con un avvertimento.
Il problema è che che non si deve confrontare due valori floating-piont per l'uguaglianza utilizzando ==
, <=
, o >=
operatori a causa di possibili errori di precisione. Inoltre, è necessario fare attenzione ai valori speciali che può richiedere un doppio: NaN
, POSITIVE_INFINITY
e NEGATIVE_INFINITY
. Suggerisco caldamente di fare qualche ricerca e di conoscere questi problemi quando si confrontano i double
s.
fonte
2012-11-08 20:32:17
hai provato esso? Ha funzionato? –
Come posso verificare se è valido. Il compilatore lo accetta ma non posso sapere se i valori numerici effettivi sono effettivamente confrontati. – Crone
Hai provato da solo ?? Un semplice test nel codice java potrebbe essere sufficiente.Controlla la mia risposta per lo stesso –