Atof Fehler
-
Hi
Ich habe ein Problem mit der Atof Funktion.
In Parameter steht "50.0" (Parameter ist ein CString)userinput.SetAt(i, atof(parameter));Aber Atof gibt 0 aus.
Was mache ich falsch.
-
Eventuell Unicode ?
Ich würde empfehlen die tcs versionen der funktionen zu benutzen. Dann fällt das Problem mit den ganzen Zeichensetzen weg (Sofern man sich bissel auskennt).
Eventuell kannst du auch nicht den CString direkt übergeben sonder musst den GetBuffer/GetData übergeben.
(Aber hab lang nix mehr mit CString gemacht)
-
Mit dieser Antwort und meinem Wissensstand kann ich leider nichts anfangen.
Ich habe auch schon versucht den Cstring in ein feld von char zu kopieren und das in Atof zu stopfen aber das problem tritt trotzdem auf.
-
Ist auch kein Zeichen mehr vor dem 50.0 ?
Alternativ kannst du auch _stscanf (funktionier wie scanf nur mit String als eingabe) nutzen.ungefähr so:
#include <tchar.h> float ans; _stscanf(parameter.GetBuffer(), _T("%f"), &ans);zu den tchars:
http://msdn2.microsoft.com/de-de/library/tsbaswba(VS.80).aspx
-
Funktioniert im Prinzip nur alle Kommas werden von meiner Dezimalzahl abgeschnitten.
-
Die Engländer benutzen ein Punkt anstatt ein Komma als Trennzeichen.
Komma ist bei dennen das Tausender Trennzeichen.50.0 wird dir als float aber immer dann als "50" ausgeben ausser du formatierst es wieder.
zb mit _stprintf(zielstring, _T("%.2f"), quellfloat);
-
Plueschi schrieb:
Hi
Ich habe ein Problem mit der Atof Funktion.
In Parameter steht "50.0" (Parameter ist ein CString)[cpp]userinput.SetAt(i, atoi(parameter));[/cpp]
Aber Atof gibt 0 aus.
Was mache ich falsch.
-
Oder du ersetzt die Punkte durch kommata.
parameter.Replace(',','.');