Partager via


strtod, _strtod_l, wcstod, _wcstod_l

Chaînes de converti en une valeur en 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
);

Paramètres

  • nptr
    Chaîne terminée par le caractère NULL à convertir.

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

  • locale
    Les paramètres régionaux à utiliser.

Valeur de retour

strtod retourne la valeur du nombre à virgule flottante, sauf lorsque la représentation peut provoquer un dépassement de capacité, auquel cas la fonction retourne +/-HUGE_VAL.le signe d' HUGE_VAL correspond à le signe de la valeur qui ne peut pas être représentée.strtod retourne 0 si aucune conversion ne peut être exécutée ou un dépassement de capacité se produit.

retourne des valeurs d'wcstod de façon similaire aux strtod.Pour les deux fonctions, errno est défini à ERANGE si le dépassement de capacité ou le dépassement de capacité se produit et le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation des paramètres.

Consultez _doserrno, errno, _sys_errlist, et _sys_nerr pour plus d'informations sur ce point et d'autres codes de retour.

Notes

chaque fonction convertit la chaîne d'entrée nptr à double.La fonction d' strtod convertit nptr sur une valeur en double précision.strtod arrête de lire la chaîne nptr au premier caractère qu'il ne peut pas reconnaître dans le cadre d'un nombre.Cela peut être le caractère NULL de fin.wcstod est une version à caractère élargi d' strtod; son argument d' nptr est une chaîne à caractères larges.Ces fonctions se comportent de sinon.

mappages de routines de texte générique

routine de TCHAR.H

_MBCS & de _UNICODE non défini

_MBCS défini

_UNICODE défini

_tcstod

strtod

strtod

wcstod

_tcstod_l

_strtod_l

_strtod_l

_wcstod_l

Le paramètre de catégorie d' LC_NUMERIC des paramètres régionaux détermine la reconnaissance du caractère de base dans nptr*;* pour plus d'informations, consultez setlocale.Les fonctions sans le suffixe d' _l utilisent les paramètres régionaux ; _strtod_l identique à _strtod_l à la différence qu'ils utilisent les paramètres régionaux passés à la place.Pour plus d'informations, consultez Paramètres régionaux.

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

strtod attend nptr indique une chaîne au format suivant :

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

whitespace peut se composer d'espaces et des tabulations, qui sont ignorés ; sign est plus (+) ou moins (–) ; et digits sont un ou plusieurs chiffres décimaux.Si chiffre ne s'affiche pas avant le caractère de base, au moins un doit apparaître après le caractère de base.Les chiffres décimaux peuvent être suivies par un exposant, qui se compose d'une lettre préliminaire (d, D, e, ou E) et éventuellement d'un entier signé.Si ni une partie d'exposant ni un caractère de base n'apparaît, considéré comme un caractère de base suit le dernier chiffre dans la chaîne.Le premier caractère qui ne rentre pas les arrêts de ce formulaire l'analyse.

Configuration requise

routine

en-tête requis

strtod, _strtod_l

<stdlib.h>

wcstod, _wcstod_l

<stdlib.h> ou <wchar.h>

Pour des informations de compatibilité supplémentaires, consultez compatibilité dans l'introduction.

Exemple

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

Équivalent .NET Framework

System : : Conversion : : ToDouble

Voir aussi

Référence

Conversion de données

Support à virgule flottante

Interprétation des séquences de caractères multioctets

Paramètres régionaux

Chaîne aux 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