[Schulaufg.-Info GK] Var-Deklarationen + Ausdrücke...

phil83

Grünschnabel
Nabend! :)

Also, am Fr. hab ich in meinem Info-GK ne Aufgabe aufbekommen und zwar:

Gegeben seien folgende Variablendeklarationen in Java:
long a = 3;
int b = 4;
short c = 5;
byte d = 6;

Welchen Wert liefern die folgenden Ausdrücke:
a) d / b * a;
[...]

Und das ist es, was ich nicht ganz versteh...
Eigentlich steht dort ja nun: 6 / 4 * 3
Ist in meinen Augen ganz klar 4,5, da 6/4 = 1,5*3 = 4,5...
Als Lösungsergebnis bekamen wir jedoch den Wert 3 (Typ: long).

Wäre super, wenn mir das einer der Fachleute erklären künnt... :-(

FG' phil83

btw: Ist eigentlich immer der zuletzt verwendete Daten-Typ (z.B. bei obigen Dekls. --> a*b+c ==> short, da Punkt-vor-Strich und c (short) als letztes in die Aufgabe mit reinfließt) auch der Daten-Typ des Ergebnisses, sofern der Ergebnis-Wert in den Typ von der Größe her passt...!
 
Servus.

Wenn du nur mit Ganzzahlen rechnest, kannst du auch nur Ganzzahlen rausbekommen.
Wenn du nur mit float oder double rechnest, dann kannst du auch Kommazahlen raus bekommen.
Code:
 (float)(6/4)
 
Zuletzt bearbeitet:
RealHAZZARD hat gesagt.:
Wenn du nur mit Ganzzahlen rechnest, kannst du auch nur Ganzzahlen rausbekommen.
Und das bedeutet dann scheinbar folgendes:
6 / 4 = 1
1 * 3 = 3

Es werden jegliche Nachkommastellen abgeschnitten. Wuerde gerundet werden wuerdet ihr uebrigens wieder auf 6 kommen. Das saehe dann so aus:
6 / 4 = 2
2 * 3 = 6

Mathe kann schon lustig sein. ;)
 
Hallo,
RealHAZZARD hat gesagt.:
Servus.
....
Wenn du nur mit float oder double rechnest, dann kannst du auch Kommazahlen raus bekommen.
Code:
 (float)(6/4)
Was soll das bringen? Das Ergebniss is trotzdem 1.
So waere es besser:
Code:
(float)6 / 4

Gruß

RedWing
 
Zurück