float in string und string in float konvertieren (Linux-Compiler)
-
Hi,
ich suche bereits seit Stunden danach, wie ich eine Fließkommazahl (float) in einen String (string) umwandeln kann. Mein Compiler ist g++. Ich habe schon rumprobiert:
// FloatToStr // // Wandelt eine Fließkommazahl in einen String um string FloatToStr(float Value) { return sprintf("%f", Value); }
Ergebnis:
server.c: In function 'std::string FloatToStr(float)':
server.c:59: error: cannot convert 'float' to 'const char*' for argument '2' to 'int sprintf(char*, const char*, ...)'Das 2te Argument muss also ein char-Pointer sein, OK...
Hilfe!!
-
-
Und da wir hier im C++-Forum sind, schaust du am besten mal in die C++-FAQ.
Einmal Zahl nach String und zurück
-
Danke lieber Osterhase. Trotzdem ist das alles viel zu anfällig.
Nach dieser Lösung_gcvt - Convert Floating-Point to String #include <stdlib.h> char *_gcvt(double value, int ndec, char *buffer);
Definiere ich mir erst einen Char-Array mit der Länge ???? (ich nehme mal 10 an) und die Funktion wandelt mir dann den float um. Wenn jetzt der Float mehr als 10 Stellen im Char-Array benötigt: Bumm.
Funktioniert hier sizeof? Also quasi:// FloatToStr // // Wandelt eine Fließkommazahl in einen String um string FloatToStr(float Value) { char result[sizeof(Value)]; _gcvt(Value, 10, &result); }
-
Oh schön, kenne die FAQ ja gar nicht...
Ich meine, ich hatte ja erstmal anständig gesucht nach "string float" in der Forensuche. Keine Treffer... Danke!
-
http://www.germangamedev.de/index.php?site=faq&id=7
lexical_cast << das Beste was gibt
-
Wo wir grad dabei sind: Deine Anwendung von sprintf ist syntaktisch falsch, nicht inhaltlich... Aber auch sowas kann man durch eine Manpage lösen