strtold, _strtold_l, wcstold, _wcstold_l

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Convierte cadenas en un valor de punto flotante de precisión doble larga.

long double strtold(  
   const char *nptr,  
   char **endptr   
);  
long double _strtold_l(  
   const char *nptr,  
   char **endptr,  
   _locale_t locale  
);  
long double wcstold(  
   const wchar_t *nptr,  
   wchar_t **endptr   
);  
long double wcstold_l(  
   const wchar_t *nptr,  
   wchar_t **endptr,  
   _locale_t locale  
);  

Parámetros

nptr
Cadena terminada en NULL que se va a convertir.

endptr
Puntero al carácter que detiene el análisis.

locale
Configuración regional que se va a usar.

strtoldDevuelve el valor del número de punto flotante como un long double, excepto cuando la representación produciría desbordamiento, en ese caso, la función devuelve + / –HUGE_VALL. El signo de HUGE_VALL coincide con el signo del valor que no se puede representar. strtoldDevuelve 0 si se puede realizar ninguna conversión o se produce un subdesbordamiento.

wcstold devuelve valores de manera parecida a strtold. Para ambas funciones, errno está establecido en ERANGE si se produce desbordamiento o subdesbordamiento y se invoca el controlador de parámetros no válidos, como se describe en validación del parámetro.

Para obtener más información acerca de los códigos de retorno, vea errno, _doserrno, _sys_errlist y _sys_nerr.

Cada función convierte la cadena de entrada nptr a una long double. El strtold función convierte nptr en un valor de precisión doble larga. strtold deja de leer la cadena nptr en el primer carácter que no reconoce como parte de un número. Esto puede ser el carácter nulo de terminación. La versión con caracteres anchos de strtold es wcstold; su nptr argumento es una cadena de caracteres anchos. De lo contrario, estas funciones se comportan exactamente igual.

Asignaciones de rutina de texto genérico

Rutina TCHAR.H_UNICODE y _MBCS no definidos_MBCS definido_UNICODE definido
_tcstoldstrtoldstrtoldwcstold
_tcstold_l_strtold_l_strtold_l_wcstold_l

El LC_NUMERIC valor de la categoría de la configuración regional actual determina el reconocimiento del carácter base en nptr. Para obtener más información, consulte setlocale, _wsetlocale. Las funciones sin el _l sufijo usar la configuración regional actual. _strtold_l y _wcstold_l son idénticas a _strtold y _wcstold salvo que usan la configuración regional que se pasa en su lugar. Para obtener más información, vea Locale.

Si endptr no NULL, un puntero al carácter que detuvo el análisis se almacena en la ubicación a la que apunta a endptr. Si no se puede realizar ninguna conversión (no válidos se encontraron dígitos o se ha especificado una base no válida), el valor de nptr se almacena en la ubicación a la que apunta a endptr.

strtoldespera nptr para que apunte a una cadena de la forma siguiente:

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

Un whitespace puede constar de caracteres de espacio y tabulación, que se omiten; sign sea plus (+) o un signo menos (); y digits son uno o más dígitos decimales. Si no aparece ningún dígito antes del carácter de base, al menos uno debe aparecer después del carácter de base. Los dígitos decimales pueden ir seguidos de un exponente que consta de una carta de presentación (d, D, e, o E) y un entero con signo si lo desea. Si aparece una exponente parte ni un carácter de base, se supone que un carácter de base siguen el último dígito de la cadena. El primer carácter que no se ajusta a este formato detiene el análisis.

RutinaEncabezado necesario
strtold, _strtold_l<stdlib.h>
wcstold, _wcstold_l<stdlib.h> o <wchar.h>

Para obtener más información sobre compatibilidad, vea Compatibilidad.

// crt_strtold.c  
// Build with: cl /W4 /Tc crt_strtold.c  
// This program uses strtold to convert a  
// string to a long double-precision value.  
  
#include <stdlib.h>  
#include <stdio.h>  
  
int main( void )  
{  
   char *string;  
   char *stopstring;  
   long double x;  
  
   string = "3.1415926535898This stopped it";  
   x = strtold(string, &stopstring);  
   printf("string = %s\n", string);  
   printf("   strtold = %.13Lf\n", x);  
   printf("   Stopped scan at: %s\n\n", stopstring);  
}  

string = 3.1415926535898This stopped it  
   strtold = 3.1415926535898  
   Stopped scan at: This stopped it  
  

System::Convert::ToDouble

Conversión de datos
Compatibilidad de punto flotante
Interpretación de secuencias de caracteres Multibyte
Configuración regional
Cadena de funciones con valores numéricos
strtod, _strtod_l, wcstod, _wcstod_l
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

Mostrar: