atof, _wtof
Nach oben zu Math.h - Index
Header-Datei
stdlib.h, math.h
Kategorie
Konvertierungsroutinen, mathematische Routinen
Prototyp
double atof(const char *s);
double _wtof(const wchar_t *s);
Beschreibung
Konvertiert einen String in eine Gleitkommazahl.
- atof konvertiert den String, auf den s zeigt, in einen Wert des Typs double. Diese Funktion erkennt die folgenden Elemente der Zeichendarstellung einer Gleitkommazahl:
- Ein optionaler String aus Tabulator- und Leerzeichen
- Ein optionales Vorzeichen
- Einen String aus Ziffern und ein optionales Dezimalzeichen (die Ziffern können auf beiden Seiten des Dezimalzeichens stehen)
- Ein optionales e oder E, gefolgt von einem optionalen, vorzeichenbehafteten Integerwert
Die Zeichendarstellung muss diesem generischen Format entsprechen:
[Whitespace-Zeichen] [Vorzeichen] [zzz] [.] [zzz] [e|E[Vorzeichen]zzz]
atof erkennt auch +INF und -INF für positive und negative unendliche Werte sowie +NAN und -NAN (not a number, d. h. keine Zahl).
Die Funktion beendet die Konvertierung bei dem ersten nicht erkannten Zeichen.
Die Funktionen strtod und _strtold sind atof ähnlich, bieten aber eine bessere Fehlererkennung, weshalb sie für bestimmte Anwendungen vorzuziehen sind.
Rückgabewert
Gibt den konvertierten Wert des Eingabe-Strings zurück.
Tritt ein Überlauf auf, gibt atof plus oder minus HUGE_VAL (oder _LHUGE_VAL) zurück, setzt errno auf ERANGE (Ergebnis außerhalb des gültigen Bereichs) und ruft _matherr (oder _matherrl) nicht auf.
Beispiel
#include <stdlib.h>
#include <math.h>
double add_inputs(wchar_t* left, wchar_t* right)
{
/* Transform the input strings into floats */
double d_left = _wtof(left);
double d_right = _wtof(right);
/* Add the transformed floats */
return d_left + d_right;
}