atof
|
Definiert in Header
<stdlib.h>
|
||
|
double
atof
(
const
char
*
str
)
;
|
||
Interpretiert einen Gleitkommawert in der Byte-Zeichenkette, auf die str zeigt.
Die Funktion verwirft alle Leerzeichen (wie durch isspace bestimmt), bis das erste Nicht-Leerzeichen gefunden wird. Dann nimmt sie so viele Zeichen wie möglich, um eine gültige Gleitkommadarstellung zu bilden, und wandelt diese in einen Gleitkommawert um. Der gültige Gleitkommawert kann einer der folgenden sein:
- Dezimale Gleitkomma-Ausdrücke. Es besteht aus den folgenden Teilen:
-
- (optional) Plus- oder Minuszeichen
- Nichtleere Folge von Dezimalziffern, optional mit Dezimaltrennzeichen (wie durch die aktuelle C- Locale bestimmt) (definiert die Signifikande)
-
(optional)
eoderEgefolgt von optionalem Minus- oder Pluszeichen und nichtleerer Folge von Dezimalziffern (definiert den Exponenten zur Basis 10 )
|
(seit C99) |
- jeder andere Ausdruck, der von der aktuell installierten C locale akzeptiert werden kann.
Inhaltsverzeichnis |
Parameter
| str | - | Zeiger auf die nullterminierte Byte-Zeichenkette, die interpretiert werden soll |
Rückgabewert
double Wert entsprechend dem Inhalt von str bei Erfolg. Falls der konvertierte Wert außerhalb des Bereichs des Rückgabetyps liegt, ist der Rückgabewert undefiniert. Falls keine Konvertierung durchgeführt werden kann, wird 0.0 zurückgegeben.
Hinweise
Der Name steht für „ASCII to float“.
Beispiel
#include <stdio.h> #include <stdlib.h> int main(void) { printf("%g\n", atof(" -0.0000000123junk")); printf("%g\n", atof("0.012")); printf("%g\n", atof("15e16")); printf("%g\n", atof("-0x1afp-2")); printf("%g\n", atof("inF")); printf("%g\n", atof("Nan")); printf("%g\n", atof("1.0e+309")); // UB: außerhalb des Bereichs von double printf("%g\n", atof("0.0")); printf("%g\n", atof("junk")); // keine Konvertierung kann durchgeführt werden }
Mögliche Ausgabe:
-1.23e-08 0.012 1.5e+17 -107.75 inf nan inf 0 0
Referenzen
- C23-Standard (ISO/IEC 9899:2024):
-
- 7.22.1.1 Die atof-Funktion (S.: TBD)
- C17-Standard (ISO/IEC 9899:2018):
-
- 7.22.1.1 Die atof-Funktion (S.: TBD)
- C11-Standard (ISO/IEC 9899:2011):
-
- 7.22.1.1 Die atof-Funktion (S: 341)
- C99-Standard (ISO/IEC 9899:1999):
-
- 7.20.1.1 Die atof-Funktion (S: 307)
- C89/C90 Standard (ISO/IEC 9899:1990):
-
- 4.10.1.1 Die atof-Funktion
Siehe auch
|
(C99)
(C99)
|
wandelt eine Byte-Zeichenkette in einen Gleitkommawert um
(Funktion) |
|
C++-Dokumentation
für
atof
|
|