strtod, _strtod_l, wcstod, _wcstod_l

 

Pour obtenir la dernière documentation sur Visual Studio 2017, consultez Documentation Visual Studio 2017.

Convertir des chaînes en une valeur double précision.

double strtod(  
   const char *nptr,  
   char **endptr   
);  
double _strtod_l(  
   const char *nptr,  
   char **endptr,  
   _locale_t locale  
);  
double wcstod(  
   const wchar_t *nptr,  
   wchar_t **endptr   
);  
double wcstod_l(  
   const wchar_t *nptr,  
   wchar_t **endptr,  
   _locale_t locale  
);  

nptr
Chaîne terminée par null à convertir.

endptr
Pointeur vers le caractère qui arrête l’analyse.

locale
Paramètres régionaux à utiliser.

strtodRetourne la valeur du nombre à virgule flottante, sauf lorsque la représentation entraînerait un dépassement de capacité, dans ce cas, la fonction renvoie + / –HUGE_VAL. Le signe de HUGE_VAL correspond à la connexion de la valeur ne peut pas être représentée. strtodretourne 0 si aucune conversion peut être effectuée ou un dépassement de capacité négatif se produit.

wcstodRetourne des valeurs de manière similaire à strtod. Pour les deux fonctions, errno a ERANGE si le dépassement de capacité positif ou négatif se produit et le Gestionnaire de paramètre non valide est appelé, comme décrit dans Validation de paramètre.

Consultez la page _doserrno, errno, _sys_errlist et _sys_nerr pour plus d’informations sur ce périphérique et autres codes de retour.

Chaque fonction convertit la chaîne d’entrée nptr à un double. Le strtod fonction convertit nptr en valeur double précision. strtodarrête la lecture de la chaîne nptr au premier caractère qu’il ne peut pas identifier comme partie d’un nombre. Cela peut être le caractère null de fin. wcstodest une version à caractère élargi de strtod; son nptr argument est une chaîne à caractères larges. Ces fonctions se comportent sinon de façon identique.

Mappages de routines de texte générique

Routine TCHAR.H_UNICODE et _MBCS non définis_MBCS défini_UNICODE défini
_tcstodstrtodstrtodwcstod
_tcstod_l_strtod_l_strtod_l_wcstod_l

Le LC_NUMERIC paramètre de catégorie de paramètres régionaux détermine la reconnaissance du caractère de base nptr ; pour plus d’informations, consultez setlocale. Les fonctions sans le _l suffixe utilisent les paramètres régionaux ; _strtod_l est identique à _strtod_l , sauf qu’ils utilisent les paramètres régionaux passé à la place. Pour plus d’informations, consultez Locale.

Si endptr n’est pas NULL, un pointeur vers le caractère qui a arrêté l’analyse est stocké à l’emplacement désigné par endptr. Si aucune conversion ne peut être effectuée (aucun chiffre valide a été trouvé ou une base non valide a été spécifié), la valeur de nptr est stocké à l’emplacement désigné par endptr.

strtodattend nptr pour pointer vers une chaîne sous la forme suivante :

[whitespace] [sign] [digits] [.digits] [ {e | E}[sign]digits]

Un whitespace peut contenir les caractères espace et la tabulation, qui sont ignorés ; sign est plus (+) ou moins () ; et digits sont un ou plusieurs chiffres décimaux. Si aucun chiffre ne s’affiche avant le caractère de base, au moins doivent apparaître après le caractère de base. Les chiffres décimaux peuvent être suivies d’un exposant, qui se compose d’une lettre d’introduction (e ou E) et d’un entier signé si vous le souhaitez. Si une partie exposant ni un caractère de base s’affiche, un caractère de base est censé pour suivre le dernier chiffre dans la chaîne. Le premier caractère qui ne correspond pas à ce formulaire arrête l’analyse.

Les versions UCRT de ces fonctions ne prennent pas en charge conversion de style Fortran (d ou D) lettres exposants. Cette extension non standard a été pris en charge par les versions antérieures de la bibliothèque CRT et peut être une modification avec rupture pour votre code.

RoutineEn-tête requis
strtod, _strtod_lC: <stdlib.h>C++ : <cstdlib > ou <stdlib.h></stdlib.h> </stdlib.h>
wcstod, _wcstod_lC: <stdlib.h> or <wchar.h> C++: <cstdlib>, <stdlib.h> or <wchar.h></wchar.h></stdlib.h></wchar.h></stdlib.h>

Pour plus d'informations sur la compatibilité, voir Compatibilité.

// crt_strtod.c  
// This program uses strtod to convert a  
// string to a double-precision value; strtol to  
// convert a string to long integer values; and strtoul  
// to convert a string to unsigned long-integer values.  
//  
  
#include <stdlib.h>  
#include <stdio.h>  
  
int main( void )  
{  
   char   *string, *stopstring;  
   double x;  
   long   l;  
   int    base;  
   unsigned long ul;  
  
   string = "3.1415926This stopped it";  
   x = strtod( string, &stopstring );  
   printf( "string = %s\n", string );  
   printf("   strtod = %f\n", x );  
   printf("   Stopped scan at: %s\n\n", stopstring );  
  
   string = "-10110134932This stopped it";  
   l = strtol( string, &stopstring, 10 );  
   printf( "string = %s\n", string );  
   printf("   strtol = %ld\n", l );  
   printf("   Stopped scan at: %s\n\n", stopstring );  
  
   string = "10110134932";  
   printf( "string = %s\n", string );  
  
   // Convert string using base 2, 4, and 8:  
   for( base = 2; base <= 8; base *= 2 )  
   {  
      // Convert the string:  
      ul = strtoul( string, &stopstring, base );  
      printf( "   strtol = %ld (base %d)\n", ul, base );  
      printf( "   Stopped scan at: %s\n", stopstring );  
   }  
}  

string = 3.1415926This stopped it  
   strtod = 3.141593  
   Stopped scan at: This stopped it  
  
string = -10110134932This stopped it  
   strtol = -2147483648  
   Stopped scan at: This stopped it  
  
string = 10110134932  
   strtol = 45 (base 2)  
   Stopped scan at: 34932  
   strtol = 4423 (base 4)  
   Stopped scan at: 4932  
   strtol = 2134108 (base 8)  
   Stopped scan at: 932  

Conversion de données
Prise en charge de virgule flottante
Interprétation des séquences de caractères multioctets
Paramètres régionaux
Chaîne à des fonctions de valeur numérique
strtol, wcstol, _strtol_l, _wcstol_l
strtoul, _strtoul_l, wcstoul, _wcstoul_l
atof, _atof_l, _wtof, _wtof_l
localeconv
_create_locale, _wcreate_locale
_free_locale

Afficher: