Zahlen Rundungs Problem

Hi Leute,

bei diesem Code

{

public static void main(String [] args) {
double pi = Math.PI/4;
double pivgl = 1-(1d/3d);
double i = 3;
double abs = Math.abs(pi-pivgl);
while (abs > 0.001d)
{
double pivgln;
i+=2;
double a = (1d/i);
pivgln = pivgl + a;
i+=2;
double b = (1d/i);
pivgl = pivgln - b;
abs = Math.abs(pi-pivgl);

System.out.println("Unterschied von Pi und PiVgl = " +abs);
}

System.out.println(„Pi/4 =“ +pi);
System.out.println(„Pi/4 Summiert =“ +pivgl);

System.out.println("Unterschied von Pi und PiVgl = " +abs);

}

}

wird mir nicht wie gewollt als Ausgabe der Wert geliefert der als erster kleiner als 0.001 ist, sondern

Unterschied von Pi und PiVgl = 9.999960000802721E-4

was ist das denn nu schon wieder?

Grüße, Marcus

Moien

Hi Leute,

Wenn du weitere Fragen hast: nimm die pre-Tags zuhilfe. Dann kann man den Code auch lesen…

wird mir nicht wie gewollt als Ausgabe der Wert geliefert der
als erster kleiner als 0.001 ist, sondern

Unterschied von Pi und PiVgl = 9.999960000802721E-4

was ist das denn nu schon wieder?

Das ist die wissenschaftliche Schreibweise (http://www.nyu.edu/pages/mathmol/textbook/scinot.html). Im Klartext steht da 9.999 * 10^-4. Das ist rund 0.0009999.

Ab Version 6.0 kann einfach auf „normal“ Umformatieren.

cu