Viele Nachkommastellen ausgeben
-
Hi,
Ich habe ein Algorithmus zur Berechnung von Pi implementiert. Wie kann ich nun auch alle meine berechneten Nachkommastellen ausgeben? Mit printf() geht das ja nicht oder?
Danke
-
als double? so vielleicht:
printf ("%.308f", x);
-
ich welchem format liegt denn die zahl vor und wie viele stellen hastu
-
-
#include <math.h> #include <stdio.h> #include <iostream> /*Gauss-Legendre*/ void pi_GL(int n) { int i; long double pi = .0; long double a = 1.0, b = 1/sqrt(2.0), c = 0.25, x = 1.0, y = .0; for (i = 0; i < n; i++) { y = a; a = (a+b)/2; b = sqrt(b*y); c = c-x*(a-y)*(a-y); x = 2*x; } pi = (a+b)*(a+b)/(4*c); printf("Iterations: %d Pi = %.100Lf\n", n, pi); } int main(void) { pi_GL(1000); return 0; }
Mit "%.100Lf" hab ichs schon probiert. Wollte 100 Stellen ausgeben. Gibt aber nicht alle Stellen aus. Sonst noch vorschläge?
-
;fricky schrieb:
http://www.greatplay.net/uselessia/articles/pi2-100000.html
*g*
ja wers denn braucht
-
scorch123 schrieb:
Mit "%.100Lf" hab ichs schon probiert. Wollte 100 Stellen ausgeben. Gibt aber nicht alle Stellen aus. Sonst noch vorschläge?
So viele Stellen hat double nicht. Kannsuguckihir:
http://www.gailer-net.de/tutorials/java/Notes/chap08/ch08_12.html
-
Aber dann müsste es ja einen Überlauf geben, tuts aber nicht.
Ansosnten: Wie stellt man das denn an, eine so grosse Zahl auszugeben? (Also wenn eine Zahl > der maximalen Datentyp Breite)
-
scorch123 schrieb:
Ansosnten: Wie stellt man das denn an, eine so grosse Zahl auszugeben? (Also wenn eine Zahl > der maximalen Datentyp Breite)
hat ja irre viele nachkommastellen, keiner weiss wie viele, aber jedenfalls viel-viel mehr als in ein double passen. es gibt aber tricks, wie man die ziffern einzeln berechnen kann, z.b.: http://www.math.clemson.edu/~simms/neat/math/pi/pi.c
-
danke, hat mir sehr weitergeholfen.