Bei der Ausführung von Operationen (einschließlich Vergleichen) mit zwei verschiedenen numerischen Typen führt Java eine implizite Erweiterungskonvertierung durch. Dies bedeutet, dass beim Vergleich eines double
mit einem int
das int
in ein double
konvertiert wird, damit Java die Werte als zwei double
s vergleichen kann. Also ist die kurze Antwort ja, der Vergleich eines int und eines double ist gültig, mit einem Vorbehalt.
Das Problem ist, dass Sie sollten nicht zwei Floating-piont Werte für die Gleichstellung vergleichen mit ==
, <=
oder >=
Betreiber wegen möglicher Fehler in Präzision. Außerdem müssen Sie auf die speziellen Werte Acht geben, die ein Doppel nehmen kann: NaN
, POSITIVE_INFINITY
und NEGATIVE_INFINITY
. Ich empfehle Ihnen dringend, etwas zu recherchieren und über diese Probleme zu lernen, wenn Sie double
s vergleichen.
Haben Sie es versuchen? Hat es funktioniert? –
Wie kann ich testen, ob es gültig ist? Compiler akzeptiert es, aber ich kann nicht wissen, ob die tatsächlichen numerischen Werte tatsächlich verglichen werden. – Crone
Haben Sie es selbst versucht? Ein einfacher Test im Java-Code hätte genügen können.Überprüfen Sie meine Antwort für das gleiche –