Dlaczego to
result = static_cast<double>(1 / (i+1))
Zwrot int
w C++ i dlaczego to
result = 1 / (i+static_cast<double>(1))
Zwrot double
? W szczególności, dlaczego casting odbywa się po +
-operacja, wystarczająca do uzyskania double
. Dlaczego nie jest to wymagane do +
lub też w liczniku? Jest static_cast
preferowany sposób castingu?
Kod:
double harmonic(int n) {
double result = 0;
for (int i = 0; i < n; i++) {
result += 1 / static_cast<double>(i+1);
}
return result;
}