"Grundkurs Programmieren in Java - (6. Auflage, 2011)"
2001-2011, Carl Hanser Verlag
Lösungsvorschlag zu Aufgabe 9.5 (Version 3.0)
(c) 2001-2011 D. Ratz, J. Scheffler, D. Seese, J. Wiesenberger
Möglichkeit 1:
Unter Verwendung der equals-Methode:
// Vergleichs mittels 'equals'-Methode
if ( d1.equals( new Double( 0.0 ) ) )
System.out.println( "Gleich 0!" );
else
System.out.println( "Ungleich 0!" );
Möglichkeit 2:
Unter Verwendung der Instanz-Methode doubleValue() der Klasse
Double erhält man den double-Wert zurück, den das Hüllobjekt
speichert:
if ( d1.doubleValue() == 0 )
System.out.println( "Gleich 0!" );
else
System.out.println( "Ungleich 0!" );
Möglichkeit 3:
Aufgrund der internen Darstellung von Fließkommazahlen kann es zu Rundungsfehlern
kommen (vgl. Kapitel 4.3), deshalb sollte man beim Vergleich gewisse Rechenungenauigkeiten
beachten und deshalb nicht direkt auf die Gleichheit mit 0 testen, sondern eine gewisse
Ungenauigkeit erlauben:
if ( d1.doubleValue() < 1e-20 )
System.out.println( "Gleich 0!" );
else
System.out.println( "Ungleich 0!" );
Quelltext: WrapperClassTest.java