Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

atof, _atof_l, _wtof, _wtof_l

 

Publication: juillet 2016

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
);

str

Chaîne à convertir.

locale

Paramètres régionaux à utiliser.

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.

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 );

}
          Fonction : atof (« 3336402735171707160320 ") = 3.336403e+021
Fonction : atof (« 3.1412764583d210 ») = 3.141276e+210
Fonction : atof (« -2309.12E-15 ») = -2.309120e-012
Afficher: