De ce nu
result = static_cast<double>(1 / (i+1))
reveni int
în C++ și de ce nu
result = 1 / (i+static_cast<double>(1))
reveni double
? În mod concret de ce este după turnare +
-funcționarea suficient pentru a produce o double
. De ce nu este necesară înainte de +
sau la numărător la fel de bine? Este static_cast
modul preferat de turnare?
Cod:
double harmonic(int n) {
double result = 0;
for (int i = 0; i < n; i++) {
result += 1 / static_cast<double>(i+1);
}
return result;
}