Frage bez. for Schleife

AlexD

Aktives Mitglied
Hallo zusammen ich muss für eine Übunge eine Zahl generieren die sich möglichst an Pi annähert.

Mein code sieht noch so aus

Java:
ublic static void main(String[] args) {
		// TODO Auto-generated method stub
		double a = 2;
		double b;
		double ausgabe=0;
		
		for (int i =0;i<=1000;i++){
			b=Math.pow((-1),i);
			ausgabe=b/(2*i+1);
			System.out.println("der Wert hat sich nach 10000 Durchläufen an Pi angenähert " + ausgabe);
		}

ab einer gewissen Anzahl wir aus der 0 leider eine 9

Bsp. 8000te Durchlauf soll sein 0.01000001001010
dann steht auf einmal z.b. 9.324358432455 dort.


Weiß einer nen Rat?
 
Steht da vielleicht sowas wie
Code:
9.324......E-4
?
Das hat schon seine Richtigkeit, das heißt dann
Code:
9.324 * 10^-4
.
 
Also falls das die Leibniz-Reihe darstellen soll, da musst du natürlich die Werte addieren^^

Java:
    public static void main(String[] args)
    {
        double a = 2;
        double b;
        double ausgabe = 0;

        for (int i = 0; i <= 1000; i++)
        {
            b = Math.pow((-1), i);
            ausgabe += b / (2 * i + 1);            
        }
        System.out.println("der Wert hat sich nach 10000 Durchläufen an Pi angenähert " + ausgabe *4);
    }

Und dann funktioniert's doch.

edit: Bei den kleinen Durchläufen merkt man's nicht, aber bei vielen ist's schon ein Unterschied, ob man potenziert oder nicht.

Java:
        int v = 1;
        double result = 0.0;
        for (int i = 1; i <= 10E8; i++)
        {
            result += (1.0 / (2 * i - 1)) * v;
            v = -v;
        }
 
Zuletzt bearbeitet:
oder vllt. auch ? :
Java:
	public static void main(String[] args) {
        double b=-1;
        double ausgabe=0;
        
        for (int i =0;i<=100000;i++){
            b *=-1;
            ausgabe += b/(2*i+1);            
            System.out.printf("der Wert1 hat sich nach %5d Durchläufen an Pi angenähert %20.10f%n",i, 4*ausgabe);
        } 
  
   }
 

Neue Themen


Zurück
Oben