C++: Float-Werte in EditBoxen darstellen

Arktiscamper

Grünschnabel
Wer kann mir einen Tip geben?

In einer Dialoganwendung will ich verschiedene Zahlenwerte (float) anzeigen. Bislang habe ich dieses Problem gelöst, indem ich die Zahlen mittels _gcvt(...)-Funktion in einen String umkonvertiere, um diesen anschließend über SetDlgItemText in einer EditBox anzuzeigen. Das funktioniert so weit ganz gut, kommt mir aber etwas umständlich vor, zumal die _gcvt(...)-Funktion nur die Möglichkeit bietet, die Gesamtanzahl der Digits zu bestimmen. Ich würde aber gern nur die Anzahl der Nachkommastellen beschränken (wie z.B.bei fprintf mit der %.2f-Anweisung).
Hat jemand einen Tip, wie ich diesen Float-to-String-Umweg vielleicht völlig weglassen kann und die Zahlen direkt auf die Oberfläche kriege (vielleicht sind ja auch die EditBoxen nicht die wahre Lösung)? Oder eine Lösung für das Nachkommastellen-Problem

Vielen Dank schon mal vorab und einen Gruß aus Berlin an alle Hilfewilligen
 
Hallo,

benutze einfach wsprintf ;)

int wsprintf(

LPTSTR lpOut, // pointer to buffer for output
LPCTSTR lpFmt, // pointer to format-control string
... // optional arguments
);

lässt sich wie fprintf benutzen
 
Erstmal vielen Dank für die schnelle Hilfe!
swprintf(..) ließ sich zwar nicht dazu bewegen, Float-Werte zu konvertieren, bin auf diesem Wege aber auf sprintf (...) gestoßen. Damit ließen sich dann Float-Werte mit den aus fprintf gewohnten Formatierungszeichen (z.B. %2.2f) in einen String kovertieren und die Nachkommastellen bestimmen, genau wie ich es wollte. Astrein!
Da mir beide Funktionen bislang unbekannt waren (verdammtes Halbwissen!), hast Du mir sehr geholfen, Flegmon! Nochmal Danke!
 
Hy!

nochwas: wenn du nen CString verwendest kannst du auch
Code:
CString test;
test.Format( "%f", Floatzahl);

hat denselben Syntax wie sprintf()

mfg
uhu01
 
Zurück