atof
Von cppreference.com
| Definiert im Header <stdlib.h> |
||
| double atof( const char* str ); |
||
Interpretiert einen Fließkommawert in einer Byte-Zeichenkette, auf die von str gezeigt wird.
Die Funktion verwirft alle Whitespace-Zeichen (wie von isspace bestimmt), bis das erste Nicht-Whitespace-Zeichen gefunden wird. Dann nimmt sie so viele Zeichen wie möglich, um eine gültige Fließkommadarstellung zu bilden, und konvertiert sie in einen Fließkommawert. Der gültige Fließkommawert kann einer der folgenden sein:
- Dezimale Gleitkomma-Ausdrücke. Sie bestehen aus den folgenden Teilen:
- (optional) Vorzeichen (+ oder -)
- nicht-leere Folge von Dezimalziffern, die optional ein Dezimalpunktzeichen enthält (wie von der aktuellen C Locale bestimmt) (definiert den Signifikand)
- (optional)
eoderEgefolgt von einem optionalen Minus- oder Pluszeichen und einer nichtleeren Sequenz von Dezimalziffern (definiert den Exponenten zur Basis 10)
|
(seit C99) |
- jeder andere Ausdruck, der von der aktuell installierten C Locale akzeptiert werden kann.
Inhalt |
[edit] Parameter
| str | - | Zeiger auf die nullterminierte Byte-Zeichenkette, die interpretiert werden soll |
[edit] Rückgabewert
double Wert, der dem Inhalt von str im Erfolgsfall entspricht. Wenn der konvertierte Wert außerhalb des Bereichs des Rückgabetyps liegt, ist der Rückgabewert undefiniert. Wenn keine Konvertierung durchgeführt werden kann, wird 0.0 zurückgegeben.
[edit] Hinweise
Der Name steht für "ASCII zu Float".
[edit] Beispiel
Führen Sie diesen Code aus
#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: out of range of double printf("%g\n", atof("0.0")); printf("%g\n", atof("junk")); // no conversion can be performed }
Mögliche Ausgabe
-1.23e-08 0.012 1.5e+17 -107.75 inf nan inf 0 0
[edit] Referenzen
- C23-Standard (ISO/IEC 9899:2024)
- 7.22.1.1 Die Funktion atof (p: TBD)
- C17-Standard (ISO/IEC 9899:2018)
- 7.22.1.1 Die Funktion atof (p: TBD)
- C11-Standard (ISO/IEC 9899:2011)
- 7.22.1.1 Die Funktion atof (p: 341)
- C99-Standard (ISO/IEC 9899:1999)
- 7.20.1.1 Die Funktion atof (p: 307)
- C89/C90-Standard (ISO/IEC 9899:1990)
- 4.10.1.1 Die Funktion atof
[edit] Siehe auch
| (C99)(C99) |
konvertiert einen Byte-String in einen Gleitkommawert (Funktion) |
| C++ Dokumentation für atof
| |