Java gibt mir zu wenig Kommazahlen aus

Hi Jungs,

habe in meinem EIT Studium Informatik und darf Java lernen. Nun ich komme ganz gut klar, weil ich PHP und Html gelernt habe. Jetzt eine Frage:

Ich will raus finden wie groß die Anzahl der Summanden der Summe für pi/4 werden muss. (Man kann pi/4 durch die unendliche Summe 1-1/3+1/5-1/7… darstellen)

Nun bin ich soweit das ich die beiden Ergebnisse vergleiche und dann mit einer While Schleife oder so mein Problem löse. Aber wieso gibt mir Java hier bei der Variable vglpi 1.0 aus!?

Ich habe zu Testzwecken die ersten Zehn Summanden mal aufgelistet und will mir die „Rohdaten“ angucken bevor ich ne Summe programmiere, also nicht wundern :wink:

"public class Aufgabe3
{

public static void main(String [] args) {
double pi = Math.PI/4;
double pivgl = 1-(1/3)+(1/5)-(1/7)+(1/9)-(1/11)+(1/13)-(1/15)+(1/17)-(1/19);

double abs = Math.abs(pi-pivgl);

System.out.println(„Pi/4 =“ +pi);
System.out.println(„Pi/4 Summiert =“ +pivgl);
System.out.println("Unterschied von Pi und PiVgl = " +abs);

}

}
"

PS: Kann ich das eventuell durch Rekursives Programmieren lösen?

Moien

Aber wieso gibt mir Java hier bei der Variable vglpi 1.0 aus!?

1/3 rechnet java als „integer 1“ / „integer 3“. D.h. diese Division läuft komplett als Integeroperation und da kann kein Kommawert rauskommen.

Man 1d/3d drauss. Das d steht für double und macht aus dem „integer 1“ das „double 1“. Dann gehts. (oder 1f/3f für float).

cu

Top Danke :wink:

Es werd nicht lange ich werde mich wieder an euch wenden müssen die nächste Aufgabe ist mal richtig mies :wink: