¿Por qué
result = static_cast<double>(1 / (i+1))
volver int
en C++ ¿y por qué
result = 1 / (i+static_cast<double>(1))
volver double
? Específicamente ¿por qué después de la fundición +
-operación suficiente para producir un double
. ¿Por qué no es requerido antes de que el +
o en el numerador así? Es static_cast
la forma preferida de casting?
Código:
double harmonic(int n) {
double result = 0;
for (int i = 0; i < n; i++) {
result += 1 / static_cast<double>(i+1);
}
return result;
}