strtod(3) Library Functions Manual strtod(3) NOM strtod, strtof, strtold - Convertir une chaine ASCII en nombre a virgule flottante BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include double strtod(const char *restrict nptr, char **restrict endptr); float strtof(const char *restrict nptr, char **restrict endptr); long double strtold(const char *restrict nptr, char **restrict endptr); Exigences de macros de test de fonctionnalites pour la glibc (consulter feature_test_macros(7)) : strtof(), strtold() : _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L DESCRIPTION Les fonctions strtod(), strtof() et strtold() convertissent la portion initiale de la chaine pointee par nptr en un reel de type double, float, et long double respectivement. La (portion initiale de la) chaine attendue est de la forme suivante : des espaces eventuels en tete, ou des caracteres interpretes comme tels par isspace(3), un eventuel signe plus (<< + >>) ou moins (<< - >>), et ensuite soit (1) un nombre decimal, soit (2) un nombre hexadecimal, soit (3) un infini, soit (4) un non nombre NAN (not-a-number). Un nombre decimal consiste en une sequence non vide de chiffres decimaux, pouvant contenir un point decimal (dependant de la localisation, mais habituellement << . >>), suivi eventuellement d'un exposant decimal. Ce dernier est constitue d'un << E >> ou << e >> suivi eventuellement du signe plus ou du signe moins, puis d'une sequence non vide de chiffres decimaux, indiquant la multiplication par une puissance de 10. Un nombre hexadecimal commence << 0x >> ou << 0X >>, suivi d'une sequence non vide de chiffres hexadecimaux, pouvant contenir un point decimal suivi eventuellement d'un exposant binaire. Ce dernier est constitue d'un << P >> ou << p >> suivi eventuellement du signe plus ou du signe moins, puis d'une sequence non vide de chiffres decimaux, indiquant la multiplication par une puissance de deux. Au moins un point ou un exposant binaire doit etre present. Un infini est soit << INF >>, soit << INFINITY >>, sans tenir compte des differences entre majuscules et minuscules. Un non-nombre est << NAN >> (sans tenir compte de la casse) suivi eventuellement d'une chaine (n-char-sequence), ou n-char-sequence indique d'une facon dependante de l'implementation le type de NAN (consultez NOTES). VALEUR RENVOYEE Ces fonctions renvoient la valeur convertie si c'est possible. Si endptr n'est pas NULL, un pointeur sur le caractere suivant le dernier caractere converti est stocke dans l'emplacement pointe par endptr. Si aucune conversion n'est possible, la fonction renvoie zero, et (a moins que endptr soit NULL) la valeur de nptr est stockee dans endptr. Si la valeur convertie declenche un debordement (overflow), la fonction renvoie plus ou moins HUGE_VAL, HUGE_VALF ou HUGE_VALL (en fonction du type de retour et du signe de la valeur) et errno contient ERANGE. Si la valeur convertie declenche un debordement inferieur (underflow), la fonction renvoie une valeur de grandeur inferieure a DBL_MIN, FLT_MIN ou LDBL_MIN et errno contient ERANGE. ERREURS ERANGE Debordement. ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +--------------------------+--------------------------+----------------+ |Interface | Attribut | Valeur | +--------------------------+--------------------------+----------------+ |strtod(), strtof(), | Securite des threads | MT-Safe locale | |strtold() | | | +--------------------------+--------------------------+----------------+ VERSIONS Dans l'implementation qui en est faite par la glibc, la n-char-sequence qui suit NAN est interpretee comme un nombre entier (avec un prefixe << 0 >> ou << 0x >> optionnel pour selectionner la base 8 ou 16) place dans la mantisse de la valeur retournee. STANDARDS C11, POSIX.1-2008. HISTORIQUE strtod() C89, POSIX.1-2001. strtof() strtold() C99, POSIX.1-2001. NOTES Comme la valeur 0 peut legitimement etre renvoyee a la fois en cas de succes et d'echec, le programme appelant doit positionner errno a 0 avant l'appel, et determiner si une erreur s'est produite en regardant si errno a une valeur non nulle apres l'appel. EXEMPLES Consultez l'exemple dans la page de manuel strtol(3) ; l'utilisation des fonctions decrites dans cette page de manuel est identique. VOIR AUSSI atof(3), atoi(3), atol(3), nan(3), nanf(3), nanl(3), strfromd(3), strtol(3), strtoul(3) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot et Gregoire Scano Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 31 octobre 2023 strtod(3)