int x = 9; System.out.println( Math.sqrt( x ) );
3.0
Auch wenn sqrt()
ein double
als Argument erwartet, haben wir hier ein int
übergeben. Das ist OK. Der Compiler weiß, was sqrt()
erwartet und fügt automatisch Code ein, um das Argument in den korrekten Typ zu konvertieren. Wenn die sqrt()
Methode aufgerufen wird, hat sie ein Gleitpunktargument von doppelter Genauigkeit, das sie erwartet.
Programmierer verwenden oft eine Typumwandlung, um explizit zu zeigen, wo die Konvertierung stattfindet:
int x = 9;
System.out.println( Math.sqrt( (double)x ) );
In dem oben stehenden Code ist die Typkonvertierung nicht erforderlich, aber sie wird verwendet, um klar zu zeigen, was die Berechnung tut. Manchmal ist eine Typkonvertierung erforderlich.
Was gibt das folgende Fragment aus?
int x = 1; int y = 9; System.out.println( Math.sqrt( x/y ) );
Warnung: das ist eine Fangfrage!