zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Warum hat das Programm die ersten 40 ohne Dezimalpunkt ausgegeben, aber die zweiten mit Dezimalpunkt als 40.0?

Antwort:

Der erste Wert war in einer Variable mit dem Datentyp long gespeichert, ein ganzzahliger Datentyp. Ganzzahlen haben keinen Dezimalteil. Der zweite Wert war das Ergebnis einer Berechnung mit einer Variablen des Datentyps double, einem Gleitpunkttyp.

Berechnung

Hier ist noch einmal das Programm:

class Beispiel
{
  public static void main ( String[] args )
  {
    long   arbeitsstunden = 40;
    double stundenlohn     = 10.0, steuersatz = 0.10;

    System.out.println("gearbeitete Stunden: " + arbeitsstunden );
    System.out.println("Bruttolohn: " + (arbeitsstunden * stundenlohn) );
    System.out.println("Steuersatz: " + (arbeitsstunden * stundenlohn * steuersatz) );
  }
}

Betrachten Sie sorgfältig die in Rot hervorgehobene Anweisung. Die Klammern um

(arbeitsstunden * stundenlohn)

erzwingen zuerst die Multiplikation. Nachdem das getan ist, wird das Ergebnis in Zeichen konvertiert und an den String "Bruttolohn: ". angehängt.

Wenn Sie eine Berechnung als Teil einer  System.out.println()  Anweisung haben, ist es eine gute Idee den arithmetischen Teil in Klammern zu setzen, um zu zeigen, dass Sie das zuerst getan haben wollen. Das ist manchmal nicht nötig, aber es wird nicht schaden und macht das Programm lesbarer.

FRAGE 8:

Wäre es zweckmäßig einige dieser Anweisungen in zwei Zeilen zu schreiben?