Il linguaggio di programmazione C di Ritchie dice che:
The library routine
sqrtexpects a double type and will produce nonsense if inadvertently handled something else. So ifnis an integer, we can usesqrt((double) n)to convert the value ofnto 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?