Sdílet prostřednictvím


strtod, _strtod_l, wcstod, _wcstod_l

Převod řetězce na hodnotu Dvojitá přesnost.

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

Parametry

  • nptr
    Řetězec zakončený převést.

  • endptr
    Ukazatel na znak, který zastaví skenování.

  • locale
    Národní prostředí použít.

Vrácená hodnota

strtodVrací číslo s plovoucí desetinnou čárkou, s výjimkou zastupování při způsobí přetečení případě funkce vrací hodnotu +/ –HUGE_VAL.Znaménko HUGE_VAL odpovídá znak hodnoty, které nelze znázornit.strtodVrátí hodnotu 0, pokud lze provést bez převodu nebo dochází podtečení.

wcstodVrátí hodnoty postupuje analogicky k strtod.Pro obě funkce errno je nastavena na ERANGE Pokud dojde k přetečení nebo podtečení a vyvolat neplatný parametr popisovače, jak je popsáno v Ověření parametrů.

Viz _doserrno, kód chyby, _sys_errlist a _sys_nerr Další informace o této a dalších návratové kódy.

Poznámky

Každá funkce převede vstupní řetězec nptr se double.strtod Funkce převede nptr na hodnotu Dvojitá přesnost.strtodukončí čtení řetězce nptr nelze rozpoznat jako součást čísla prvního znaku.Může to být ukončujícím znakem null.wcstodje verze celého znaku strtod; jeho nptr je řetězec znaků wide argument.Tyto funkce chovat stejně jinak.

Obecný Text rutinní mapování

TCHAR.Rutina H

_UNICODE & _MBCS není definován

_MBCS, definice

_UNICODE, definice

_tcstod

strtod

strtod

wcstod

_tcstod_l

_strtod_l

_strtod_l

_wcstod_l

LC_NUMERIC Kategorie nastavení aktuální národní prostředí určuje rozpoznávání znaku radix nptr*;* Další informace naleznete v tématu setlocale.Funkce bez _l příponu použít aktuální národní prostředí; _strtod_lje shodné s _strtod_l s výjimkou, že používají místo předaný národní prostředí.Další informace naleznete v tématu Národní prostředí.

Pokud endptr není NULL, ukazatel na znak, který přestal skenování je uložen v umístění odkazuje endptr.Pokud lze provést bez převodu (nebyly nalezeny žádné platné číslice nebo byl zadán neplatný base) hodnotu nptr je uložen na adrese, na kterou odkazuje endptr.

strtodočekává nptr pro řetězec následující formulář:

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

A whitespace se může skládat z místa a kartu znaky, které jsou ignorovány; signje buď plus (+) nebo minus (–); a digits jsou jeden nebo více desetinných míst.Žádné číslic se zobrazí před znak Číselná soustava, alespoň jeden musí být uvedena za znak Číselná soustava.Mohou následovat desítkových číslic exponentu tvoří úvodní písmeno (d, D, e, nebo E) a volitelně znaménkem.Exponent část ani radix znak se zobrazí, předpokládá se znak radix poslední číslice v řetězci následovat.První znak, který tento formulář nevejde zastaví skenování.

Požadavky

Rutina

Požadované záhlaví

strtod, _strtod_l

<stdlib.h>

wcstod, _wcstod_l

<stdlib.h> nebo <wchar.h>

Další informace o kompatibilitě, viz Compatibility v úvodu.

Příklad

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

Ekvivalent v rozhraní .NET Framework

System::convert::ToDouble

Viz také

Referenční dokumentace

Převod dat

Podpora s plovoucí desetinnou čárkou

Výklad vícebajtové znakové sekvence

Národní prostředí

Řetězec číselné hodnoty funkce

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