Compartir a través de


_atodbl, _atodbl_l, _atoldbl, _atoldbl_l, _atoflt_l de _atoflt

Convierte una cadena en double (_atodbl), el doble largo (_atoldbl), o a 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,
   char * str
);
int _atoflt_l(
   _CRT_FLOAT * value,
   char * str,
   locale_t locale
);

Parámetros

  • value
    Double, doble largo, o valor float generado convertir la cadena en un valor de punto flotante.Estos valores se agrupan en una estructura.

  • str
    La cadena que se va a analizar para convertir en un valor de punto flotante.

  • locale
    la configuración regional a utilizar.

Valor devuelto

devuelve 0 si correctamente; los códigos de error posibles son _UNDERFLOW o _OVERFLOW, definido en el archivo de encabezado Math.h.

Comentarios

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

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

Las versiones de estas funciones con el sufijo de _l son idénticas salvo que utilizan el parámetro locale pasado en lugar de la configuración regional del subproceso actual.

Requisitos

rutinas

Encabezado necesario

_atodbl, _atoldbl, _atoflt

_atodbl_l, _atoldbl_l, _atoflt_l

<stdlib.h>

Ejemplo

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

Vea también

Referencia

Conversión de datos

Compatibilidad de punto flotante

Configuración regional

atof, _atof_l, _wtof, _wtof_l