10 Jan
2004
10 Jan
'04
19:43
Philipp Otte schrieb:
[...] Und jetzt probiers mal mit k=1000 zu starten. Da sind die ersten ca. 20 Ausgaben 1, weil erst danach die Genauigkeit von long double erreicht wird.
Nein, dies liegt daran, daß Du die Berechnung mit ganzen Zahlen durchführst (unsigned int n) und erst später nach long double castest. Versuche es mal so: for (int i = k; i > 0; i--) { long double n = 2 * i; long double p1 = n / (n - 1); long double p2 = n / (n + 1); pi2 = pi2 * p1 * p2; cout << pi2 << endl; } Das Aufspalten des Faktors n^2 / (n^2 -) in n / (n - 1) * n / (n + 1) erhöht evtl. die Genauigkeit bei großen k. -- Alex