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

}
  

Équivalent .NET Framework

Voir aussi

Référence

Conversion de données

Prise en charge de la virgule flottante

Paramètres régionaux

_ecvt

_fcvt

_gcvt

setlocale, _wsetlocale

_atodbl, _atodbl_l, _atoldbl, _atoldbl_l, _atoflt _atoflt_l