Warum bei double 0?
-
Hallo,
ich habe folgendes Problem. Ich habe einen Wert n=10 in meinem Beispiel und errechne damit 10/55 (ca.0,18).
double summe=(n)/(n*(n+1)/2);Wenn ich jetzt aber mit summe weiterrechne ist summe 0 und nicht 10/55. Warum? Kann mir einer bitte helfen. Wie kann ich diesen Effekt verhindern?
-
double summe=(n)/(n*(n+1.0)/2.0);
-
Du führst eine Int-Division aus und weist das Ergebnis einem double zu. Erst *nach* der Rechnung erfolgt die Konversion. Das Problem wird gelöst, indem Du einen Operanden explizit nach double konvertierst:
double summe = double(n) / (n * (n + 1) / 2);Übrigens: Wieso hast Du 'n' in Deinem Code umklammert? Das ist überflüssig.
/EDIT: Davids Lösung ist natürlich besser.
-
Danke!
-
double summe = 2.0 / (n + 1);nicht?
-
hustbaer schrieb:
double summe = 2.0 / (n + 1);nicht?
doch, kürzen is immer gut
