atof
|
Definido en el encabezado
<stdlib.h>
|
||
|
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 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 localidad actual de C) (define el significando)
-
(opcional)
eoEseguido de signo menos o más opcional y secuencia no vacía de dígitos decimales (define el exponente en base 10 )
|
(desde C99) |
- 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 está 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.
Notas
El nombre significa "ASCII a float".
Ejemplo
#include <stdio.h> #include <stdlib.h> int main(void) { printf("%g\n", atof(" -0.0000000123junk")); printf("%g\n", atof("0.012")); printf("%g\n", atof("15e16")); printf("%g\n", atof("-0x1afp-2")); printf("%g\n", atof("inF")); printf("%g\n", atof("Nan")); printf("%g\n", atof("1.0e+309")); // UB: out of range of double printf("%g\n", atof("0.0")); printf("%g\n", atof("junk")); // no conversion can be performed }
Salida posible:
-1.23e-08 0.012 1.5e+17 -107.75 inf nan inf 0 0
Referencias
- Estándar C23 (ISO/IEC 9899:2024):
-
- 7.22.1.1 La función atof (p: TBD)
- Estándar C17 (ISO/IEC 9899:2018):
-
- 7.22.1.1 La función atof (p: TBD)
- Estándar C11 (ISO/IEC 9899:2011):
-
- 7.22.1.1 La función atof (p: 341)
- Estándar C99 (ISO/IEC 9899:1999):
-
- 7.20.1.1 La función atof (p: 307)
- Estándar C89/C90 (ISO/IEC 9899:1990):
-
- 4.10.1.1 La función atof
Véase también
|
(C99)
(C99)
|
convierte una cadena de bytes a un valor de punto flotante
(función) |
|
Documentación de C++
para
atof
|
|