die floats mal wieder
-
Frage: Wiso kommt hier 49 raus und nicht 4 ???
#include <stdio.h> int main(void) { int counter = 0; float value = 1234; float tmpNum = value; while(tmpNum != 0) { tmpNum /= 10.0; counter++; } printf("|%d|\n", counter); return 0; }
-
Hallo. Lies Dir am besten mal das hier durch. Wenn dann immer nicht klar sein sollte, was in Deinem Prog falsch läuft, frag einfach nochmal...
-
Ich bezweifle, dass es sich um ein Gleitkommaproblem handelt. Ich tipp eher auf ein Denkproblem: Warum sollte da denn 4 rauskommen? 1234 / 10^4 ist 0,1234 und nicht 0.
-
Ich glaube, er wollte sowas in der Art coden:
... while((int)tmpNum != 0) { tmpNum /= 10.0; counter++; } ...
und hier kommt dann '4' raus...
-
mady schrieb:
Ich glaube, er wollte sowas in der Art coden:
Jo genau. er soll zählen wieviele stellen die zahl hat.
-
dann nimm auch int und nicht float
-
Ja würd ich ja, aber das ganze ist ja nur ein teilproblem, ich wollt nicht den ganzen quellcode posten, da mehrere steiten. Das float muss sein, weil es vorher in ner anderen datei geparst wird und dann brauch ich float auch noch für spätere berechnungen.
-
ich mein tmpValue
-
dann sag halt while(tmpNum >= 1), wenns dir nur um die stellen vor dem komma geht...
-
****pling****
danke