Probleme mit fcvt()
-
Hey!
Ich versuche mit der fcvt Funktion eine floatzahl zu einem string zu konvertieren
char *buffer; int decimal, sign; buffer = fcvt (3.52523454, 5, &decimal, &sign);Bei der Ausgabe des Buffers kommt da aber immer Mist raus, z.B. 24242235.
In dem Beispiel wurde die Funktion aber auch so (ähnlich) verwendet, wo mache ich einen Fehler?
-
Die aufgeführte Funktion liefert im Ergebnis lediglich die Digits der gegebenen Zahl. Die Position des Dezimalpunktes sowie das Vorzeichen sind im 3. und 4. Parameter gesichert.
Weiter ist zu beachten, dass der Zeiger beim nächsten Aufruf der Funktion das Ergebnis verändert.
Möglicher Workaround für vernünftige Formatierung:
std::string float2string(float val){
char buf[50];
sprintf(buf, "%f", val);
return string(buf);
}