Il linguaggio di programmazione C di Ritchie dice che:
The library routine
sqrt
expects a double type and will produce nonsense if inadvertently handled something else. So ifn
is an integer, we can usesqrt((double) n)
to convert the value ofn
to double.
Ma il seguente codice funziona correttamente sul mio sistema:
printf("%f",sqrt(9));
Inoltre, sta dando lo stesso risultato di sqrt((double)9)
. Perché il mio compilatore non segue il libro?