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

Eine gute Antwort könnte sein:

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

Berechnung

Hier ist noch mal das Programm:

class Beispiel
{
  public static void main ( String[] args )
  {
    long   gearbeiteteStunden = 40;
    double stundenLohn     = 10.0, steuerSatz = 0.10;

    System.out.println("gearbeitete Stunden: " + gearbeiteteStunden );
    System.out.println("Bruttolohn: " + (gearbeiteteStunden * stundenLohn) );
    System.out.println("Steuersatz: " + (gearbeiteteStunden * stundenLohn * steuerSatz) );
  }
}

Betrachten Sie sorgfältig die in Rot hervorgehobene Anweisung. Die Klammern um  (gearbeiteteStunden * stundenLohn)  zeigen, dass wir  gearbeiteteStunden  mit  stundenLohn  multiplizieren wollen und dann das Ergebnis (in Zeichen konvertiert) an den String anhängen wollen.

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. Mehr dazu gibt es später.

FRAGE 8:

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