Nicht in diesem Beispiel. Aber manchmal spielt es eine Rolle, wenn die Werte nahe an dem Limit sind, das durch 16-Bit repräsentiert werden kann.
Hier ist ein weiteres Beispiel:
short x = 12; short y = 3; short ergebnis; ergebnis = x / y;
Der Ausdruck x / y
dividiert eine 32-Bit 12 durch eine 32-Bit 3, auch wenn die Variablen x und y nur 16 Bit haben. Die Berechnung ergibt ein 32-Bit Ergebnis. Da das 32-Bit Ergebnis nicht in die 16 Bit von ergebnis
passen, wird der Compiler die letzte Anweisung nicht kompilieren. Das kann sehr verwirrend sein.
D:\daten\java\bsp>javac ShortBsp.java ShortBsp.java:9: possible loss of precision found : int required: short result = x / y; ^ 1 error D:\daten\java\bsp>
Auf der Ebene der professionellen Programmierung sind Details wie diese manchmal wichtig. Aber wir werden in der Regel für Ganzzahlen int
oder long
und für Gleitpunktzahlen double
verwenden. Das wird uns Ärger ersparen. Wenn sich das Problem nicht vermeiden läßt, verwenden wir Typkonvertierung, wie in Kapitel 28 beschrieben.
Erwartet Ihr, dass uns ein moderner elektronischer Taschenrechner
für den Ausdruck (31.5 - 12)/4.1