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

Eine gute Antwort wäre:

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)  zeigen, dass wir  arbeitsstunden  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?

Inhaltsverzeichnis