atof, _atof_l, _wtof, _wtof_l

Convierte una cadena a double.

double atof(
   const char *str 
);
double _atof_l(
   const char *str,
   _locale_t locale
);
double _wtof(
   const wchar_t *str 
);
double _wtof_l(
   const wchar_t *str,
   _locale_t locale
);

Parámetros

  • str
    Cadena que se va a convertir.

  • locale
    Configuración regional que se va a usar.

Valor devuelto

Cada función devuelve el valor de double generado interpretar los caracteres de entrada como un número. El valor devuelto es 0,0 si la entrada no se puede convertir en un valor de ese tipo.

En todos los casos que se fuera-de- intervalo, el errno se establece en ERANGE. Si el parámetro pasado es NULL, se invoca el controlador no válido de parámetro, tal y como se describe en Validación de parámetros. Si la ejecución puede continuar, estas funciones establecen errno en EINVAL y devuelven 0.

Comentarios

Estas funciones convierten una cadena de caracteres a un de precisión doble, valor de punto flotante.

La cadena de entrada es una secuencia de caracteres que se pueden interpretar como valor numérico del tipo especificado. La función deja de leer la cadena de entrada en el primer carácter que no reconoce como parte de un número. Este carácter puede ser el carácter null (“\0” o L'\0) que termina la cadena.

El argumento de str a atof y a _wtof tiene el siguiente formato:

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

whitespace consta del espacio o 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 separador decimal, al menos uno debe aparecer después del separador decimal. Los dígitos decimales pueden ir seguidos por un exponente, formada por una letra preliminar (d, D, e, o E) y un entero decimal opcionalmente firmado.

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

Asignaciones de rutina de texto genérico

Rutina TCHAR.H

_UNICODE y _MBCS no definidos

_MBCS definido

_UNICODE definido

_tstof

atof

atof

_wtof

_ttof

atof

atof

_wtof

Requisitos

Rutina(s)

Encabezado necesario

atof

<math.h y> stdlib.h <>

_atof_l

<math.h y> stdlib.h <>

_wtof, _wtof_l

<stdlib.h> o <wchar.h>

Ejemplo

Este programa muestra cómo los números almacenados como cadenas se pueden convertir en valores numéricos mediante la función de atof .

// crt_atof.c
//
// This program shows how numbers stored as 
// strings can be converted to numeric
// values using the atof function.

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

int main( void )
{
    char    *str = NULL;
    double  value = 0;

    // An example of the atof function
    // using leading and training spaces.
    str = "  3336402735171707160320 ";
    value = atof( str );
    printf( "Function: atof( \"%s\" ) = %e\n", str, value );

    // Another example of the atof function
    // using the 'd' exponential formatting keyword.
    str = "3.1412764583d210";
    value = atof( str );
    printf( "Function: atof( \"%s\" ) = %e\n", str, value );

    // An example of the atof function
    // using the 'e' exponential formatting keyword.
    str = "  -2309.12E-15";
    value = atof( str );
    printf( "Function: atof( \"%s\" ) = %e\n", str, value );

}
  

Equivalente en .NET Framework

Vea también

Referencia

Conversión de datos

Compatibilidad con el punto flotante

Configuración regional

_ecvt

_fcvt

_gcvt

setlocale, _wsetlocale

_atodbl, _atodbl_l, _atoldbl, _atoldbl_l, _atoflt _atoflt_l