int x = 1; int y = 9; System.out.println( Math.sqrt( x/y ) );
0.0
Der "Trick" bei dieser Frage ist,
dass die Division von
x
durch y
bei der Auswertung der Anweisung zuerst erfolgt.
Da sowohl x
als auch y
Integer sind,
wird eine Ganzzahl-Division durchgeführt und das Ergebnis ist der Integer 0.
Als nächstes wird der Integer 0 in 0.0 mit doppelter Genauigkeit konvertiert
und es ist dieser Wert, der an sqrt()
geschickt wird,
die 0.0 als Ergebnis berechnet.
Obwohl es eine Fangfrage war, tritt diese Situation naturgemäß häufig in Programmen auf und Sie sollten nach ihr Ausschau halten.