Etwas verstehe ich nicht ganz:
[HIGHLIGHT="Java"]
double d = 8.333;
int a = 12;
a *= d; // Zeile A
System.out.println("a: " + a); // 99
[/HIGHLIGHT]
Ich kann den obigen Code kompilieren, obwohl in der Zeile A eine Zuweisung double --> int und somit auch eine Konversion von double in int durchgeführt wird!
Wenn ich die Zeile A ändere
[HIGHLIGHT="Java"]
a = a * d; // Zeile B
[/HIGHLIGHT]
kann ich den Code so nicht kompilieren. Der Compiler sagt mir, dass eine Konversion von double in int nicht möglich ist. Diese Meldung habe ich auch erwartet. Nun, wieso wird die Zeile A von Compiler akzeptiert?
[HIGHLIGHT="Java"]
double d = 8.333;
int a = 12;
a *= d; // Zeile A
System.out.println("a: " + a); // 99
[/HIGHLIGHT]
Ich kann den obigen Code kompilieren, obwohl in der Zeile A eine Zuweisung double --> int und somit auch eine Konversion von double in int durchgeführt wird!
Wenn ich die Zeile A ändere
[HIGHLIGHT="Java"]
a = a * d; // Zeile B
[/HIGHLIGHT]
kann ich den Code so nicht kompilieren. Der Compiler sagt mir, dass eine Konversion von double in int nicht möglich ist. Diese Meldung habe ich auch erwartet. Nun, wieso wird die Zeile A von Compiler akzeptiert?