String in Zahl convertieren
-
hi,
ich möchte via atof ein string in float wandeln.
Wenn ich nun Müll übergebe, gibt ftoa 0.0000 zurück.Wie kann ich nun unterscheiden ob ich Müll oder 0.0000 übergeben habe,
weil beidesmal ja 0.0000 rauskommt.GetLastError lieft mir auch kein fehler...
-
Zeig mal deinen Code. Hast du denn versucht den String denn elementweise in Zahlen umzuwandeln oder am ganzen Stück?
-
"Description:
...str must start with a valid number, but can be terminated with any non-numerical character, other than "E" or "e"."
-
sprintf(acData,"%s","0.00000"); fData= atof(acData); iVal= GetLastError(); printf("%s \t %f Err: %i\n",acData,fData,iVal); sprintf(acData,"%s","Shit"); fData= atof(acData); iVal= GetLastError(); printf("%s \t %f Err: %i\n",acData,fData,iVal);
bei beiden kommt 0.00000 raus, wobei der erste wert ja gültig ist, der zweite aber nich.. ie kann ich das erkennen?
-
Hallo,
Converter_ schrieb:
sprintf(acData,"%s","0.00000"); fData= atof(acData); iVal= GetLastError(); printf("%s \t %f Err: %i\n",acData,fData,iVal); sprintf(acData,"%s","Shit"); fData= atof(acData); iVal= GetLastError(); printf("%s \t %f Err: %i\n",acData,fData,iVal);
bei beiden kommt 0.00000 raus, wobei der erste wert ja gültig ist, der zweite aber nich.. ie kann ich das erkennen?
Nicht mit atof allein, entweder vorher zusätzlich prüfen oder auf Funktionen ausweichen, die mehr Infos zurückgeben (z.B. strtod oder sscanf).
MfG,
Probe-Nutzer