strtod(3) Library Functions Manual strtod(3) BEZEICHNUNG strtod - konvertiert eine ASCII-Zeichenkette in eine Fliesskommazahl BIBLIOTHEK Standard-C-Bibliothek (libc, -lc) UBERSICHT #include double strtod(const char *restrict nzeig, char **_Nullable restrict endzeig); float strtof(const char *restrict nzeig, char **_Nullable restrict endzeig); long double strtold(const char *restrict nzeig, char **_Nullable restrict endzeig); Mit Glibc erforderliche Feature-Test-Makros (siehe feature_test_macros(7)): strtof(), strtold(): _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L BESCHREIBUNG Die Funktionen strtod(), strtof() und strtold() wandeln den ersten Teil der Zeichenkette, auf die nzeig zeigt, in die entsprechende double-, float- und long double-Darstellung um. Es wird die folgende Form (des Anfangs) der Zeichenkette erwartet: optionale Leerzeichen, wie sie von isspace(3) erkannt werden, ein optionales Plus- >>+<<) oder Minus-Zeichen (>>-<<) und dann entweder (i) eine Dezimalzahl oder (ii) eine Hexadezimalzahl oder (iii) ein unendlicher Wert oder (iv) keine Zahl (ein NAN, not-a-number). Eine Dezimalzahl besteht aus einer nicht leeren Folge von Dezimalziffern, die moglicherweise ein Radix-Zeichen enthalt (Dezimalpunkt, von der Locale abhangig, meistens >>.<<), optional gefolgt von einem dezimalen Exponenten. Ein dezimaler Exponent besteht aus einem >>E<< oder >>e<<, gefolgt von einer nicht leeren Folge von Dezimalziffern. Er bedeutet eine Multiplikation mit einer Potenz von 10. Eine Hexadezimalzahl besteht aus einem >>0x<< oder >>0X<< gefolgt von einer nicht leeren Folge von Hexadezimalziffern (die vielleicht ein Radix-Zeichen enthalt), der optional ein binarer Exponent folgt. Ein binarer Exponent besteht aus einem >>P<< oder >>p<<, gefolgt von einem optionalen Plus- oder Minuszeichen, gefolgt von einer nicht leeren Folge von Dezimalziffern, die fur die Multiplikation mit einer Potenz von 2 steht. Mindestens ein Radix-Zeichen und ein binarer Exponent mussen vorhanden sein. Ein unendlicher Wert ist ungeachtet der Gross- oder Kleinschreibung entweder >>INF<< oder >>INFINITY<<. Ein NAN ist (ungeachtet der Gross- oder Kleinschreibung) ein >>NAN<<, optional gefolgt von einer Zeichenkette (n-char-sequence). Die Zeichenfolge beschreibt auf implementationsabhangige Weise den Typ des NaNs (siehe VERSIONEN). RUCKGABEWERT Diese Funktionen liefern den umgewandelten Wert zuruck, wenn er existiert. Wenn endzeig nicht NULL ist, wird an dem durch endzeig bestimmten Ort ein Zeiger auf das erste Zeichen gespeichert, das nicht mehr zur Konvertierung herangezogen wurde. Wenn keine Konvertierung stattgefunden hat, wird 0 zuruckgeliefert und (falls endzeig nicht Null ist) der Wert von nzeig wird am Ort gespeichert, auf den endzeig weist. Falls der korrekte Wert einen Uberlauf verursacht, wird plus oder minus HUGE_VAL, HUGE_VALF oder HUGE_VALL zuruckgegeben (abhangig vom Typ Vorzeichen des Wertes) und ERANGE wird in errno gespeichert. Verursacht der korrekte Werte eine Bereichsunterschreitung, wird ein Wert zuruckgegeben, der nicht grosser als DBL_MIN, FLT_MIN oder LDBL_MIN ist und ERANGE wird in errno gespeichert. FEHLER ERANGE Uberlauf oder Bereichsunterschreitung aufgetreten ATTRIBUTE Siehe attributes(7) fur eine Erlauterung der in diesem Abschnitt verwandten Ausdrucke. +-------------------------+-------------------------+------------------+ |Schnittstelle | Attribut | Wert | +-------------------------+-------------------------+------------------+ |strtod(), strtof(), | Multithread-Fahigkeit | MT-Sicher locale | |strtold() | | | +-------------------------+-------------------------+------------------+ VERSIONEN In der Glibc-Implementierung wird die n-char-sequence, der optional ein >>NAN<< folgt, als Ganzzahl interpretiert (mit einem optionalen Prafix >>0<< oder >>0x<<, um entweder 8 oder 16 als Basis zu wahlen), die in die Mantissen-Komponente des zuruckgegebenen Wertes gesetzt wird. STANDARDS C11, POSIX.1-2008. GESCHICHTE strtod() C89, POSIX.1-2001. strtof() strtold() C99, POSIX.1-2001. WARNUNGEN Da 0 ein legitimer Ruckgabewert sowohl bei Erfolg als auch bei Misserfolg zuruckgegeben werden kann, sollte das aufrufende Programm errno vor dem Aufruf auf 0 setzen und nach dem Aufruf prufen, ob errno einen Wert ungleich Null hat. BEISPIELE Siehe das Beispiel in der Handbuchseite strtol(3); die Verwendung der in dieser Handbuchseite beschriebenen Funktionen ist ahnlich. SIEHE AUCH atof(3), atoi(3), atol(3), nan(3), nanf(3), nanl(3), strfromd(3), strtol(3), strtoul(3) UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Martin Eberhard Schauer und Mario Blattermann erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . Linux man-pages 6.18 17. Mai 2025 strtod(3)