strtod(3)

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

BIBLIOTHÈQUE
Bibliothèque C standard (libc, -lc)

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.

The expected form of the (initial portion of the) string is optional leading white space as recognized by isspace(3), an optional plus ('+') or minus sign ('-') and then either (i) a decimal number, or (ii) a hexadecimal number, or (iii) an infinity, or (iv) a NAN (not-a-number).

A decimal number consists of a nonempty sequence of decimal digits possibly containing a radix character (decimal point, locale-dependent, usually '.'), optionally followed by a decimal exponent. A decimal exponent consists of an 'E' or 'e', followed by an optional plus or minus sign, followed by a nonempty sequence of decimal digits, and indicates multiplication by a power of 10.

A hexadecimal number consists of a "0x" or "0X" followed by a nonempty sequence of hexadecimal digits possibly containing a radix character, optionally followed by a binary exponent. A binary exponent consists of a 'P' or 'p', followed by an optional plus or minus sign, followed by a nonempty sequence of decimal digits, and indicates multiplication by a power of 2. At least one of radix character and binary exponent must be present.

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).
Interface | Attribut | Valeur
strtod(), strtof(), strtold() | Sécurité des threads | MT-Safe locale

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

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)

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.