strtod(3C) strtod(3C)
NAME
strtod, atof - Zeichenkette in Zahl doppelter Genauigkeit umwandeln
SYNTAX
#include <stdlib.h>
double strtod(const char *nptr, char **endptr);
double atof(const char *nptr);
BESCHREIBUNG
strtod() liefert den Wert der Zeichenkette nptr als Gleitkommazahl mit
doppelter Genauigkeit zurück (double). Die Zeichenkette wird bis zum
ersten nicht identifizierbaren Zeichen verarbeitet.
strtod() erkennt optionale Leerzeichen (wie durch isspace() in
ctype(3C) definiert), dann ein optionales Vorzeichen, dann eine Zei-
chenkette mit Ziffern, welche einen Dezimalpunkt enthalten darf, und
schließlich einen Exponententeil, der e oder E, gefolgt von einem
optionalen Vorzeichen und einer ganzen Zahl, enthält.
Ist der Wert von endptr nicht (char **)NULL, so wird in endptr ein
Zeiger auf das Zeichen zurückgeliefert, welches die Bearbeitung been-
det hat. Können keine Zahlen erzeugt werden, wird *endptr auf nptr
gesetzt und Null zurückgeliefert.
atof(nptr) ist äquivalent zu:
strtod(nptr, (char **)NULL).
Wenn der Rückgabewert von atof() nicht darstellbar ist, ist das Ver-
halten undefiniert.
ERGEBNIS
Wenn der korrekte Wert einen Überlauf verursachen würde - und wenn das
Programm mit -kansi oder -kosi kompiliert wurde -, wird HUGEVAL (in
math.h definiert) zurückgegeben (je nach dem Vorzeichen des Werts
value), und errno wird auf ERANGE gesetzt. [Wenn mit der Option -kcc
(Standard) kompiliert wurde, wird HUGE anstelle von HUGEVAL
zurückgegeben.]
Würde der korrekte Wert einen Unterlauf verursachen, wird Null zurück-
geliefert und errno auf ERANGE gesetzt.
HINWEISE
Da bei nichtdarstellbarem Rückgabewert bei atof() das Ergebnis undefi-
niert ist, sollten Sie statt dessen die Funktion strtod() verwenden.
SIEHE AUCH
cc(1), ctype(3C), strtol(3C), scanf(3S).
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98