Gleitkommazahlen, Berechnung von pi

Hallo,
Ich lerne seit 3 Tagen Java und bin heute bei einem Beispiel des Kapitels Gleitkommazahlen ins Stocken geraten. Man soll ein Java-Programm schreiben, das pi auf 5 Gleitkommazahlen genau berechnet.
Die Lösung ist lt. Buch folgende:

public static void main(String[] arg) {
double n = 1.0, n0 = 0.0;
int i = 3, sign = -1;
while (Math.abs(n - n0) > 0.0000025) { // 0.00001 / 4
n0 = n;
n = n + sign * (1.0 / i);
sign = -sign;
i = i+ 2;

}
double pi = 4 * n;
System.out.println("pi = " + pi);
}

Da in diesem Fall leider auch nicht die Lösung verstehe, wäre mir sehr geholfen, wenn mir diese jemand erklären könnte. Ich denke es handelt sich blöderweise um ein mathematisches Verständins-Problem.
Viele Dank im Voraus!
Mfg
 
Vielen Dank!
Wieso aber wird ist i dann 3 und sign -1? Bzw. wo kommen diese Werte her, d.h. wie kommen sie zustande, was sagen sie aus?
Math.abs() bedeutet, dass immer die positive Zahl verarbeitet wird, egal ob positiv oder negativ, also der Betrag?
 
Wieso aber wird ist i dann 3 und sign -1? Bzw. wo kommen diese Werte her, d.h. wie kommen sie zustande, was sagen sie aus?
Anfangs wird das Zwischenergebnis n auf 1 gesetzt, deshalb kann man in der Schleife mit dem ersten Bruch beginnen, also 1/3. sign ist -1 weil der erste Bruch vom Zwischenergebnis subtrahiert und nicht addiert wird.
Math.abs() bedeutet, dass immer die positive Zahl verarbeitet wird, egal ob positiv oder negativ, also der Betrag?
Ja.
 

Neue Themen


Zurück
Oben