Exportar (0) Imprimir
Expandir todo
and
div
eof
not
or
xor
Expandir Minimizar
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

_atodbl, _atodbl_l, _atoldbl, _atoldbl_l, _atoflt _atoflt_l

Convierte una cadena en double (_atodbl), long double (_atoldbl) o float (_atoflt).

int _atodbl(
   _CRT_DOUBLE * value,
   char * str
);
int _atodbl_l (
   _CRT_DOUBLE * value,
   char * str,
   locale_t locale
);
int _atoldbl(
   _LDOUBLE * value,
   char * str
);
int _atoldbl_l (
   _LDOUBLE * value,
   char * str,
   locale_t locale
);
int _atoflt(
   _CRT_FLOAT * value,
   const char * str
);
int _atoflt_l(
   _CRT_FLOAT * value,
   const char * str,
   locale_t locale
);

value

Valor double, long double o float que se genera al convertir la cadena en un valor de punto flotante. Estos valores se agrupan en una estructura.

str

Cadena que se va a analizar para convertirla en un valor de punto flotante.

locale

Configuración regional que se va a usar.

Si la operación se realiza correctamente, devuelve 0. Los códigos de error posibles son _UNDERFLOW o _OVERFLOW, que se definen en el archivo de encabezado Math.h.

Estas funciones convierten una cadena en un valor de punto flotante. La diferencia entre estas funciones y la familia de funciones atof es que estas funciones no generan código de punto flotante y no producen excepciones de hardware. En lugar de ello, las condiciones de error se notifican como códigos de error.

Si una cadena no tiene una interpretación válida como valor de punto flotante, value se establece en cero y el valor devuelto es cero.

Las versiones de estas funciones que tienen el sufijo _l son idénticas a las versiones que no lo tienen, salvo que utilizan el parámetro de configuración regional que se pasa en lugar de la configuración regional actual.

Rutinas

Encabezado necesario

_atodbl , _atoldbl, _atoflt

_atodbl_l , _atoldbl_l, _atoflt_l

<stdlib.h>

// crt_atodbl.c
// Uses _atodbl to convert a string to a double precision
// floating point value.

#include <stdlib.h>
#include <stdio.h>

int main()
{
   char str1[256] = "3.141592654";
   char abc[256] = "abc";
   char oflow[256] = "1.0E+5000";
   _CRT_DOUBLE dblval;
   _CRT_FLOAT fltval;
   int retval;

   retval = _atodbl(&dblval, str1);

   printf("Double value: %lf\n", dblval.x);
   printf("Return value: %d\n\n", retval);

   retval = _atoflt(&fltval, str1);
   printf("Float value: %f\n", fltval.f);
   printf("Return value: %d\n\n", retval);

   // A non-floating point value: returns 0.
   retval = _atoflt(&fltval, abc);
   printf("Float value: %f\n", fltval.f);
   printf("Return value: %d\n\n", retval);

   // Overflow.
   retval = _atoflt(&fltval, oflow);
   printf("Float value: %f\n", fltval.f);
   printf("Return value: %d\n\n", retval);

   return 0;
}
Valor double: 3,141593
Valor devuelto: 0

Valor float: 3,141593
Valor devuelto: 0

Valor float: 0,000000
Valor devuelto: 0

Valor float: 1.#INF00
Valor devuelto: 3

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft