Provided by: manpages-fr-dev_4.15.0-9_all bug

NOM

       strtod, strtof, strtold - Convertir une chaîne ASCII en nombre à virgule flottante

SYNOPSIS

       #include <stdlib.h>

       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   fonctionnalités   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
       chaîne pointée par nptr en un réel de type double, float, et long double respectivement.

       La  (portion  initiale  de  la)  chaîne  attendue  est  de la forme suivante : des espaces
       éventuels en tête, ou des caractères interprétés comme tels par  isspace(3),  un  éventuel
       signe  plus  (« + »)  ou moins (« - »), et ensuite soit (1) un nombre décimal, soit (2) un
       nombre hexadécimal, soit (3) un infini, soit (4) un non nombre NAN (not-a-number).

       Un nombre décimal consiste en une séquence non vide de chiffres décimaux, pouvant contenir
       un  point  décimal  (dépendant  de  la  localisation,  mais  habituellement  « . »), suivi
       éventuellement d'un exposant décimal. Ce dernier est constitué d'un « E » ou  « e »  suivi
       éventuellement  du  signe plus ou du signe moins, puis d’une séquence non vide de chiffres
       décimaux, indiquant la multiplication par une puissance de 10.

       Un nombre hexadécimal commence « 0x » ou « 0X », suivi d'une séquence non vide de chiffres
       hexadécimaux,  pouvant  contenir  un  point  décimal  suivi  éventuellement  d'un exposant
       binaire. Ce dernier est constitué d'un « P » ou « p » suivi éventuellement du  signe  plus
       ou  du  signe  moins,  puis  d’une  séquence  non  vide de chiffres décimaux, indiquant la
       multiplication par une puissance de deux. Au moins un point ou un  exposant  binaire  doit
       être présent.

       Un  infini  est  soit  « INF », soit « INFINITY », sans tenir compte des différences entre
       majuscules et minuscules.

       Un non-nombre est « NAN » (sans tenir compte  de  la  casse)  suivi  éventuellement  d'une
       chaîne   (n-char-sequence),   où   n-char-sequence   indique  d'une  façon  dépendante  de
       l'implémentation le type de NAN (consultez NOTES).

VALEUR RENVOYÉE

       Ces fonctions renvoient la valeur convertie si c'est possible.

       Si endptr n'est pas NULL, un pointeur  sur  le  caractère  suivant  le  dernier  caractère
       converti est stocké dans l'emplacement pointé par endptr.

       Si aucune conversion n'est possible, la fonction renvoie zéro, et (à moins que endptr soit
       NULL) la valeur de nptr est stockée dans endptr.

       Si la valeur convertie déclenche un débordement (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 déclenche un débordement inférieur (underflow), la fonction renvoie
       une valeur de grandeur inférieure à DBL_MIN, FLT_MIN ou LDBL_MIN et errno contient ERANGE.

ERREURS

       ERANGE Débordement.

ATTRIBUTS

       Pour une explication des termes utilisés dans cette section, consulter attributes(7).

       ┌─────────────────────────────────────────────────┬──────────────────────┬────────────────┐
       │InterfaceAttributValeur         │
       ├─────────────────────────────────────────────────┼──────────────────────┼────────────────┤
       │strtod(), strtof(), strtold()                    │ Sécurité des threads │ MT-Safe locale │
       └─────────────────────────────────────────────────┴──────────────────────┴────────────────┘

CONFORMITÉ

       POSIX.1-2001, POSIX.1-2008, C99.

       strtod() était également décrit dans la norme C89.

NOTES

       Comme  la  valeur 0 peut légitimement être renvoyée à la fois en cas de succès et d'échec,
       le programme appelant doit positionner errno à 0  avant  l'appel,  et  déterminer  si  une
       erreur s'est produite en regardant si errno a une valeur non nulle après l'appel.

       Dans  l'implémentation  qui en est faite par la glibc, la n-char-sequence qui suit NAN est
       interprétée comme un nombre entier  (avec  un  préfixe  « 0 »  ou  « 0x »  optionnel  pour
       sélectionner la base 8 ou 16) placé dans la mantisse de la valeur retournée.

EXEMPLES

       Consultez  l'exemple  dans  la  page  de  manuel  strtol(3) ;  l'utilisation des fonctions
       décrites 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)

COLOPHON

       Cette page fait partie de la publication 5.13 du projet man-pages Linux.  Une  description
       du  projet et des instructions pour signaler des anomalies et la dernière version de cette
       page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION

       La traduction française de cette  page  de  manuel  a  été  créée  par  Christophe  Blaess
       <https://www.blaess.fr/christophe/>,  Stéphan  Rafin  <stephan.rafin@laposte.net>, Thierry
       Vignaud <tvignaud@mandriva.com>, François Micaux, Alain  Portal  <aportal@univ-montp2.fr>,
       Jean-Philippe    Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-
       luc.coulon@wanadoo.fr>,   Julien    Cristau    <jcristau@debian.org>,    Thomas    Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>,  Denis
       Barbier   <barbier@debian.org>,   David   Prévot  <david@tilapin.org>  et  Grégoire  Scano
       <gregoire.scano@malloc.fr>

       Cette traduction est une documentation libre ; veuillez vous reporter  à  la  GNU  General
       Public   License   version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  concernant  les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à ⟨debian-l10n-french@lists.debian.org⟩.