x = 1/3; funktioniert nicht ???
-
hallo hab grad mal folgendes geschrieben
#include <stdio.h> #include <math.h> double wurzeldrei1 (double); int main (void) { double x = 3; double wurzel; wurzel = wurzeldrei1(x); printf ("%lf", wurzel); } double wurzeldrei1 (double x) { double xneu = 5; int i; for (i=0;i<20;i++) { xneu = 1/3; x = xneu; } return xneu; }
eigentlich sieht das programm anders aus, ich möchte aber hiermit mein problem erläutern.
in der for schleife unten, möchte ich, dass xneu den wert von 1/3 annimmt, bei mir bekommt es aber immer den wert 0??
könnt ihr mir sagen was ich falsch mache?
-
1.0 / 3.0
-
*seufz*
danke
-
Zur Erklärung (für dich und alle, die über das selbe Problem stolpern): Wenn du zwei ganze Zahlen dividierst, wird dazu int-Arithmetik verwendet - und das bedeutet, daß Nachkommastellen entsorgt werden. Um Gleitkomma-Division zu verwenden, muß mindestens ein double beteiligt sein (theoretisch reicht auch
1/3.0
aus).
-
CStoll schrieb:
Zur Erklärung (für dich und alle, die über das selbe Problem stolpern): Wenn du zwei ganze Zahlen dividierst, wird dazu int-Arithmetik verwendet - und das bedeutet, daß Nachkommastellen entsorgt werden.
Wobei man genauer sagen sollte, int Division heisst Ergebnis mit Rest.