atof()

atof ist definiert in der stdlib, die in C über stdlib.h, bzw. in C++ über cstdlib eingebunden wird.

Funktion

atof konvertiert einen ASCII-String in eine Fließkommazahl (ASCII to floatingpoint - atof).

Zunächst werden sämtliche Whitespaces (Leerzeichen, Tabs) übersprungen, bis die ersten Ziffern gefunden werden. Es darf ein + bzw. - der Zahl vorangestellt sein, der Dezimalpunkt wird beachtet und es der zu interpretierende String darf ein 'e' oder 'E' hinter der Ziffer haben, gefolgt von '+' bzw. '-' und dem Exponenten.

Werden Zeichen gefunden, die nicht interpretiert werden können, so wird die Konvertierung abgebrochen und die bisher interpretierte Zahl zurückgegeben.

Gültige Strings wären z.B. „ 123“, „+1232“, „-42“, „10E+3“.

Signatur

#include <stdlib.h>
double atof( char const * str );

str: der zu konvertierende String

Return value: die konvertiete Zahl als Double-Wert

Bemerkungen

Konnte keine Zahl konvertiert werden, weil der String leer oder aus nicht interpretierbaren Zeichen bestand (z.B. „abc“) oder die zu konvertierende Zahl ist so klein, dass sie mit einem Double-Wert nicht dargestellt werden kann, so wird 0.0 zurückgegeben. Ist die zu konvertierende Zahl so groß, dass sie nicht dargestellt werden kann, so wird HUGE_VAL mit entsprechendem positivem oder negativem Vorzeichen zurückgeliefert.

Die Umkehrfunktion, also einen double-Wert in einen ASCII-String zu konvertierten ist über sprintf() möglich.

Beispiel

#include <stdlib.h>
#include <stdio.h>
 
int main( void )
{
  char const * str = "47.11";
  double value;
 
  value = atof( str );
 
  printf( "Wert des Strings \"%s\": %f\n", str, value );
 
  return EXIT_SUCCESS;
}

Ausgabe:

Wert des Strings "47.11": 47.110000

siehe auch