PI und Variablen???



  • Hi,

    ich versuche gerade ein Programm zu schreiben das mir PI bis zu einer bestimmten genauigkeit ausrechnet.

    Mein Problem betrifft die Variablen, da es ja keinen Typ gibt der mehr als eine Handvoll Nachkommastellen speichern kann.

    Gibt es eigentlich im standard C++ eine möglichkeit sich genauere Typen zu definieren oder sich sonst irgendwie zu beschaffen???
    Oder hat vielleicht jemand einen ganz anderen ansatz das Problem zu lösen???

    Wolle



  • Hallo

    Auf wie viele Nachkommastellen soll Pi denn berechnet werden?

    Wenn selbst double nicht mehr ausreichen sollte, kannst du dir immer noch
    selber eine Klasse schreiben, die mit größeren Zahlen mit Nachkommerstellen
    umgehen kann.



  • Oder eine vorhandene benutzen (-> www.oonumerics.org )



  • Die Formel ist so :

    Formel : PI = 4*[1- 1/3 + 1/5 - 1/7 + 1/9 - 1/11 +.....

    Quelltext :

    #include <iostream.h>
    
    main (){
    double pi,x,b,c;		// b=Nenner ; 	
    int in,i;			// in = Eingabe ; i = Laufvariable
    
    b=3;				// Startwert des Nenners
    c=1;				// Startwert der Summen
    
    cout << endl;
    cout << " PI berechnen \n";
    cout << " -------------\n";
    
    cout << " Wieviele Durchg\x84nge : ";  	// \x84 = ä
    cin >> in;
    cout << endl;
    
    for ( i=1 ; i <= in ; i++  ) {
          if (i%2==1) {	
          x=(1/b);
          c=c-x;
          b+=2;
          cout << " Bruch : - " << x << endl;
          cout << " c nach " << i << ". Durchgang " << c << endl;;
    
          }
          if (i%2==0) {
          x=(1/b);
          c=c+x;
          b+=2;
          cout << " Bruch : + " << x << endl;
          cout << " c nach " << i << " .Durchgang " << c << endl;;
        }	
    
    }
    cout << endl;
    cout << " PI nach " << i-1 << " Durchg\x84ngen : " << 4*c << endl;    
    
    }
    


  • Erstmal ein dickes Danke an alle die sich die Mühe gemacht haben zu antworten.

    @dinu_ch: Danke für den Quelltext, aber ich benutze als Algorithmus nicht das Leibnitz-Verfahren wie du sondern das Bellard-Verfahren.

    Mein Problem ist nicht der Algorithmus sondern wie ich mit den großen Kommazahlen rechnen soll.


Anmelden zum Antworten