Wo sind denn da die Nachkommastellen? ^^
-
Hi,
ich hab ne Frage zu Rechenoperationen in C++.
Bei einer ganz einfachen Rechnung zweier Zahlen:
float Test1 = 14069 / 200;
kommt 70 raus :|
Wo haben sich da die Nachkommastellen versteckt?
Ich bin grad etwas verwundert ^^
-
int durch int ergibt int. Schreib
14069.0 / 200
Dann wird auch der Nenner nach double konvertiert und das Ergebnis ist auch double.
-
Bashar schrieb:
int durch int ergibt int. Schreib
Ach so ^^
Ich dachte es hängt vom Ergebnis ab :<Thx
-
...
direkt noch was:
ich hab jetzt:
double Sucher1 = 14069; (der Wert ist variabel, aber nehmen wir einfach mal den)
double test1 = floor(Sucher1/200); (da kommt 70 raus)
double test11 = Sucher1/200 (da kommt 70,345 raus)rechne ich aber jetzt:
test11-test1 oder (Sucher1/200 -floor(Sucher1/200)) kommt 0,3449999999... raus.
Wieso wird aus 70,345-70 = 0,3449999?
-
Weil Gleitkommazahlen nicht alle reellen Zahlen exakt darstellen können.
http://www.google.de/search?q=what+every+computer+scientist+should+know+about+floating-point+arithmetic