float zahl zerlegen?
-
Hi,
bisher musste ich nur ints zerlegen doch jetzt müsste ich wissen wie man eine float zahl zerlegt!
für int's hab ich bisher nur diese funktion benutzt:
#include <vector> #include <algorithm> std::vector<unsigned> split_number(unsigned num) { std::vector<unsigned> result; while (num) { result.push_back(num % 10); num /= 10; } std::reverse(result.begin(), result.end()); return result; }
leider funzt der Modolu nicht mit floats
wie kann ich das da machen?
-
vielleicht die float zahl mit ner 10erpotenz multiplizieren also z.b. mit 100000 je nach dem wie lang die zahl is und dann in int umwandeln?
-
denke an vorwärtsschieben.
//erstmal klitzeklein machen while(x>=1) x/=1; //dann vorwärtsschieben while(x!=0 && stellen<=MAXSTELLEN) { x*=10;//nächste stelle vor's komma saugen int vorkomma=int(x);//casten, um zu sagen, abrundung war absicht result.push_back(vorkomma);//vorkommastelle speichern x-=vorkomma;//und abschnippeln }
-
Hallo,
du kannst fmod benutzen. fmod = % fuer float.
-
-
Würde auf jeden Fall mehr Sinn machen
. Aber er hat ja davor angedeutet was er machen will.