Cast string zu float und umgekehrt
-
Wie kann ich einen String in ein 32bit float umwandeln?
Und wie kann ich einen 32bit float in einen Strin umwandeln?In der MSDN habe ich nur Methoden gefunden um 64bit double in strings umzuwandeln.
/* convert string to float */ m_fCurrent = _tcstod(szText, NULL); /* convert float to string */ CString CSipromTDoc::CastFloat2String(float64_t fFloat) { char_t cBuffer[30] = ""; CString szString = ""; _gcvt(fFloat, 10, cBuffer); szString = cBuffer; return szString; }Sowas suche ich für 32bit float!
Weiß jemand rat?
-
-
atof wandelt einen String in float um, hab ich wohl übersehen. Und welche Funktion wandelt einen float in einen String um?
-
atof wanndelt den String auch in ein 64bit double um, ich benötige jedoch ein 32bit float.
-
maRKus23 schrieb:
Und welche Funktion wandelt einen float in einen String um?
CString::Format

-
Hast du dir mal atof angeschaut, diese Methode wandelt den String in ein double um.
-
Kannste mal bitte ein Beispiel posten, wie man den float umwandelt.
Die Methode ist mir nicht bekannt und aus der MSDN werd ich auch nicht schlau.
-
Das funktioniert wie printf.

CString strBla; float dZahl = 3.4; strBla.Format("%.1f", dZahl);Das ist jetzt nicht getestet, müsste aber passen.

-
Danke schön.
Aber noch eine Anmerkung: atof funktioniert nicht!
-
Das hatte ich gelesen, aber ich weiß leider nicht, was stattdessen funktionieren könnte.

-
hmm??CString strBla; float dZahl = 3.4; strBla.Format("%.1f", dZahl);Diese Methode schneidet mir die Nachkommastellen ab. Haste ne Ahnung warum?
-
Ja klar, was meinst du, was die 1 macht?

Spiel doch mal damit rum, schreib mal
%.2f
%10.5f
usw.... oder guck doch nochmal in die Doku ob dir ein Licht aufgeht.

Du solltest doch irgendwo ein C-Buch mit ner Erklärung zu printf drin haben, oder?
-
upps, hab l(kleines L) anstatt 1(eins)
-
Oh, ich hatte damit gerechnet, dass du das kopierst und nicht abschreibst.

-
So jetzt funktionierts auch richtig.

-
atof funktioniert nicht!
Was funktioniert daran nicht? Wenn Du unbedingt ein float brauchst, dann caste den double-Wert doch danach.