atof, _wtof

Aus RAD Studio
Wechseln zu: Navigation, Suche

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;
}