Perché
result = static_cast<double>(1 / (i+1))
ritorno int
in C++, e perché
result = 1 / (i+static_cast<double>(1))
ritorno double
? In particolare perché dopo il casting +
-il funzionamento è sufficiente a produrre un double
. Perché non è richiesto prima che il +
o al numeratore così? È static_cast
il modo preferito di casting?
Codice:
double harmonic(int n) {
double result = 0;
for (int i = 0; i < n; i++) {
result += 1 / static_cast<double>(i+1);
}
return result;
}