Konvertierung von Float in CString
-
Hallo,
ich möchte einen Wert von float in CString wandeln, wobei ich die Vor- und Nachkommastellen explizit angeben möchte.Normalerweise geht das ja so:
CString strWert; float wert; strWert.Format("%5.3f", wert);
Das ist schon klar....!
Jetzt möchte ich aber die Anzahl der Vor- und Nachkommastellen als PARAMETER übergeben, sprich so:
String CDateneingabe::FloatToStringF(float wert, int precision, int digits) // ------------------------------------------------------------------------------- { // lokale String-Variable CString strWert; strWert.Format("%precision.digits f", wert); return strWert; }
Nur so klappt es leider (logischerweise!) nicht...
Wie realisiert man das denn sinnvoll und einfach?!?!
Danke schon Mal im Voraus.
Gruss
S.
-
Du kannst doch den Formatstring genauso zusammensetzen:
CString strFormat; strFormat.Format("%%%d.%df", precision, digits); CString strWert; strWert.Format(strFormat, wert);
-
Ich habe es nicht ausprobiert aber funktioniert:
strWert.Format("%(%d.%d)f",precision,digits,wert);
-
Nein, das letztere dürfte nicht funktionieren, aber mit strWert.Format("%*.*f",digits,precision,wert); sollte das entsprechende Ergebnis liefern.
(btw, erst kommt die Zeichenzahl, dann die Präzision)
-
Hehe, wollte eigentlich nicht schreiben:
Ich habe es nicht ausprobiert aber es funktioniert:
sondern eigentlich:
Ich habe es nicht ausprobiert , ob es funktioniert:
Aber ist eigentlich logisch.
-
Hallo
und Danke für die Vorschläge.Die Version von CStoll (off) funktioniert auf jeden Fall....Danke.
Jetzt habe ich auch endlich verstanden wofür man den * hier noch verwenden kannAlso, Danke euch allen und noch ein schönes Wochenende.
Gruss
S.
-
Danke.
Auch so!