atof, _atof_l, _wtof, _wtof_l
Convertir une chaîne en double.
double atof(
const char *str
);
double _atof_l(
const char *str,
_locale_t locale
);
double _wtof(
const wchar_t *str
);
double _wtof_l(
const wchar_t *str,
_locale_t locale
);
Paramètres
str
Chaîne à convertir.locale
Paramètres régionaux à utiliser.
Valeur de retour
Chaque fonction retourne la valeur double qui est produite lors de l'interprétation des caractères d'entrée comme des nombres. La valeur de retour est 0.0 si l'entrée ne peut pas être convertie en une valeur de ce type.
Dans tous les cas hors limites, errno est défini à la valeurERANGE. Si le paramètre qui est passé est NULL, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation de paramètre. Si l'exécution est autorisée à se poursuivre, ces fonctions définissent errno avec la valeur EINVAL et retournent 0.
Notes
Ces fonctions convertissent une chaîne de caractères en une valeur double précision, valeur à virgule flottante.
La chaîne d'entrée est une séquence de caractères qui peuvent être interprétés comme une valeur numérique du type spécifié. La fonction cesse de lire la chaîne au premier caractère qu'elle ne peut pas reconnaître comme faisant partie d'un nombre. Ce caractère peut être le caractère null ('\0' ou L'\0') qui termine la chaîne.
L'argument str de atofet _wtofa la forme suivante:
[whitespace] [sign] [digits] [.digits] [ {d | D | e | E }[sign]digits]
Un whitespace se compose d'un espace ou de caractères de tabulation, qui sont ignorés ; sign est soit plus (+) soit moins (–) ; et les digits se composent d'un ou de plusieurs chiffres. Si aucun chiffre n'apparaît avant la virgule, au moins un doit apparaître après la virgule. Les nombres décimaux peuvent être suivis d'un exposant, qui comprend une lettre préliminaire (d, D, e ou E) et éventuellement un entier décimal signé.
Les versions de ces fonctions avec le suffixe _l sont identiques, sauf qu'elles utilisent les paramètres régionaux passés au lieu des paramètres régionaux actuels.
Mappages de routines de texte générique
Routine TCHAR.H |
_UNICODE & _MBCS non définis |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_tstof |
atof |
atof |
_wtof |
_ttof |
atof |
atof |
_wtof |
Configuration requise
Routine(s) |
En-tête requis |
---|---|
atof |
<stdlib.h> ou <math.h> |
_atof_l |
<stdlib.h> ou <math.h> |
_wtof, _wtof_l |
<stdlib.h> ou <wchar.h> |
Exemple
Ce programme montre comment les nombres stockés sous la forme de chaines peuvent etre convertis en des valeurs numériques en utilisant la fonction atof.
// crt_atof.c
//
// This program shows how numbers stored as
// strings can be converted to numeric
// values using the atof function.
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
char *str = NULL;
double value = 0;
// An example of the atof function
// using leading and training spaces.
str = " 3336402735171707160320 ";
value = atof( str );
printf( "Function: atof( \"%s\" ) = %e\n", str, value );
// Another example of the atof function
// using the 'd' exponential formatting keyword.
str = "3.1412764583d210";
value = atof( str );
printf( "Function: atof( \"%s\" ) = %e\n", str, value );
// An example of the atof function
// using the 'e' exponential formatting keyword.
str = " -2309.12E-15";
value = atof( str );
printf( "Function: atof( \"%s\" ) = %e\n", str, value );
}