Namespaces
Variants

std:: atof

From cppreference.net
Definido en el encabezado <cstdlib>
double atof ( const char * str ) ;

Interpreta un valor de punto flotante en una cadena de bytes apuntada por str .

La función descarta cualquier carácter de espacio en blanco (según lo determinado por std::isspace ) hasta que se encuentra el primer carácter que no es un espacio en blanco. Luego toma tantos caracteres como sea posible para formar una representación válida de punto flotante y los convierte en un valor de punto flotante. El valor válido de punto flotante puede ser uno de los siguientes:

  • expresión decimal de punto flotante. Consta de las siguientes partes:
  • (opcional) signo más o menos
  • secuencia no vacía de dígitos decimales que opcionalmente contiene el carácter de punto decimal (según lo determinado por la configuración regional actual de C) (define el significando)
  • (opcional) e o E seguido de signo más o menos opcional y secuencia no vacía de dígitos decimales (define el exponente en base 10 )
  • expresión de punto flotante hexadecimal. Consiste en las siguientes partes:
  • (opcional) signo más o menos
  • 0x o 0X
  • secuencia no vacía de dígitos hexadecimales que opcionalmente contiene un carácter de punto decimal (según lo determinado por la configuración regional actual de C) (define el significando)
  • (opcional) p o P seguido de signo menos o más opcional y secuencia no vacía de dígitos decimales (define el exponente en base 2 )
  • expresión de infinito. Consiste en las siguientes partes:
  • (opcional) signo más o menos
  • INF o INFINITY ignorando mayúsculas/minúsculas
  • expresión de no-es-un-número. Consiste en las siguientes partes:
  • (opcional) signo más o menos
  • NAN o NAN( char_sequence  ) ignorando mayúsculas/minúsculas de la parte NAN . char_sequence solo puede contener dígitos, letras latinas y guiones bajos. El resultado es un valor de punto flotante NaN silencioso.
(desde C++11)
  • cualquier otra expresión que pueda ser aceptada por la configuración regional de C actualmente instalada locale .

Contenidos

Parámetros

str - puntero a la cadena de bytes terminada en nulo que se va a interpretar

Valor de retorno

double valor correspondiente al contenido de str en caso de éxito. Si el valor convertido queda fuera del rango del tipo de retorno, el valor de retorno es indefinido. Si no se puede realizar ninguna conversión, 0.0 es retornado.

Ejemplo

#include <cstdlib>
#include <iostream>
int main()
{
    std::cout << std::atof("0.0000000123") << '\n'
              << std::atof("0.012") << '\n'
              << std::atof("15e16") << '\n'
              << std::atof("-0x1afp-2") << '\n'
              << std::atof("inF") << '\n'
              << std::atof("Nan") << '\n'
              << std::atof("invalid") << '\n';
}

Salida:

1.23e-08
0.012
1.5e+17
-107.75
inf
nan
0

Véase también

(C++11) (C++11) (C++11)
convierte una cadena en un valor de punto flotante
(función)
convierte una cadena de bytes en un valor de punto flotante
(función)
(C++17)
convierte una secuencia de caracteres en un valor entero o de punto flotante
(función)
convierte una cadena de bytes en un valor entero
(función)