Warum hat das Programm die ersten 40 ohne Dezimalpunkt ausgegeben, aber die zweiten mit Dezimalpunkt als 40.0?
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.
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) );
}
}
Betrachtet sorgfältig die in blau 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
Wenn wir eine Berechnung als Teil einer System.out.println()
Wäre es zweckmäßig einige dieser Anweisungen in zwei Zeilen zu schreiben?