Prečo
result = static_cast<double>(1 / (i+1))
návrat int
v C++ a prečo
result = 1 / (i+static_cast<double>(1))
návrat double
? Konkrétne, prečo je odlievanie po +
-prevádzka postačujúce na dosiahnutie double
. Prečo nie je potrebné pred +
alebo v čitateli aj? Je static_cast
preferovaný spôsob casting?
Kód:
double harmonic(int n) {
double result = 0;
for (int i = 0; i < n; i++) {
result += 1 / static_cast<double>(i+1);
}
return result;
}