Mailinglist Archive: opensuse-programming-de (174 mails)

< Previous Next >
Re: long double
  • From: Philipp Otte <scouter_84@xxxxxx>
  • Date: 10 Jan 2004 20:02:59 +0100
  • Message-id: <1073760728.2920.21.camel@xxxxxxxxxxxx>
Also so sieht das Programm bisher aus:
//*** Einzubindende Header ***
#include <cmath>
#include <iostream>

//*** Definition des Namespaces ***
using namespace std;

//*** Definition globaler Variablen ***

//*** Hauptfunktion main()

int main()
{
//Definition der Variablen
unsigned int k;
long double pi2=1;
unsigned int n;
// Abfrage von k
cout<<"Programm zur Berechnunhg von Pi mit der Methode von
Wallis"<<endl<<"Wie groß soll k sein?"<<endl;
cin>>k;
cout<<k<<endl;
for (int i=k;i>0;i--)
{
n=2*i;
pi2=pi2*(long double)(n*n)/(long double)(n*n -1);
cout<<pi2<<endl;
}
cout<<"Die Näherung mit k = "<<k<<" für Pi lautet: "<<2*pi2<<endl;
return 0;
}
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.
Am Sam, 2004-01-10 um 19.03 schrieb Ferdinand Ihringer:
> Hallo,
>
> Am Samstag, 10. Januar 2004 19:00 schrieb Philipp Otte:
> > Also ich schreib ein Programm zur Bestimmung von pi. Das heißt ich
> > brauche ziemlich viele Dezimalstellen, aber laut meinem C-Buch geht long
> > double, double und float nur bis 6 Stellen hinter dem Komma genau. Das
> > ist aber an sich zu wenig für diesen Zweck. Andererseits kann ich keine
> > speziellen Bibliotheken nehmen, weil ich ISO-konform bleiben muss.
> > philipp
>
> Du hast ein komisches Buch. Das gilt nur für float. double hat, glaube ich, 15
> und long double 19 Stellen Genauigkeit.
>
> Ferdinand
>


< Previous Next >