"Grundkurs Programmieren in Java - (7. Auflage, 2014)"
2001-2014, Carl Hanser Verlag

Lösungsvorschlag zu Aufgabe 9.5 (Version 3.0)

(c) 2001-2014 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