¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo
div
EOF
Expandir Minimizar
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

strtod, _strtod_l, wcstod, _wcstod_l

Cadenas de convertir un valor de precisión doble.

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

Cadena terminada en null a convertir.

endptr

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

locale

la configuración regional a utilizar.

strtod devuelve el valor de número de punto flotante, excepto cuando la representación provocaría un desbordamiento, en cuyo caso la función vuelve +/-HUGE_VAL. El signo de HUGE_VAL coincide con el signo del valor que no se puede representar. strtod devuelve 0 si ninguna conversión puede realizar o un subdesbordamiento aparece.

wcstod devuelve valores análogo a strtod. Para ambas funciones, errno se establece en ERANGE si el desbordamiento o subdesbordamiento aparece y se invoca el controlador no válido de parámetro, tal y como se describe en Validación de parámetros.

Vea _doserrno, errno, _sys_errlist, y _sys_nerr para obtener más información sobre estos y otros códigos de retorno.

cada función convierte la cadena de entrada nptr a double. la función de strtod convierte nptr a un valor de precisión doble. strtod finaliza la lectura de la cadena nptr en el primer carácter que no puede reconocer como parte de un número. Puede ser el carácter null de terminación. wcstod es una versión con caracteres anchos de strtod; el argumento de nptr es una cadena de caracteres. Estas funciones se comportan exactamente igual de otra manera.

Asignaciones de la rutina de texto genérico

rutina de TCHAR.H

_UNICODE y _MBCS no definido

_MBCS definido

_UNICODE definido

_tcstod

strtod

strtod

wcstod

_tcstod_l

_strtod_l

_strtod_l

_wcstod_l

El valor de categoría de LC_NUMERIC de la configuración regional actual determina el reconocimiento de carácter de la base de nptr; para obtener más información, vea setlocale. las funciones sin el sufijo de _l utilizan la configuración regional actual; _strtod_l es idéntico a _strtod_l salvo que utilizan la configuración regional pasado en su lugar. Para obtener más información, vea Configuración regional.

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

strtod espera que nptr apunta a una cadena con el formato siguiente:

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

whitespace puede ser el espacio y los caracteres de tabulación, se omiten que; sign está más (+) o menos (); y digits es uno o más dígitos decimales. Si ningún dígitos aparecen 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 por un exponente, formada por una letra preliminar (d, D, e, o E) y un entero opcionalmente firmado. Si no aparece una parte del exponente ni un carácter de base, un carácter de base se supone para seguir el último dígito de la cadena. El primer carácter que no encaja en este formulario detiene el análisis.

rutina

Encabezado necesario

strtod , _strtod_l

<stdlib.h>

wcstod , _wcstod_l

<stdlib.h> o <wchar.h>

Para obtener información adicional de compatibilidad, vea compatibilidad en la Introducción.

// 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 );
   }
}
la cadena = 3.1415926This la detuvieron
   strtod = 3,141593
   análisis detenido en: Esto detuvo

la cadena = -10110134932This se detuvieron
   strtol = -2147483648
   análisis detenido en: Esto detuvo

cadena = 10110134932
   strtol = 45 (base 2)
   análisis detenido en: 34932
   strtol = 4423 (base 4)
   análisis detenido en: 4932
   strtol = 2134108 (base 8)
   análisis detenido en: 932

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft