Функция
Преобразует строку в число с плавающей точкой.
Синтаксис
#include <math.h>
double atof(const char *s);
Прототип
math.h
stdlib.h
Описание
Функция atof преобразует символьную строку, адресный указатель которой находится в аргументе s, в число с двойной точностью (тип double). Данная функция распознает символьное представление числа с плавающей точкой следующего вида:
- необязательная строка табуляции и пробелов;
- необязательный знак;
- строку цифр и необязательную десятичную точку (цифры могут находиться с обеих сторон от точки);
- необязательные символы e или E, за которыми следует необязательное целое со знаком.
Символы должны соответствовать следующему формату:
[пробелы] [знак] [ddd] [.] [ddd] [e|E[знак]ddd]
Atof также распознает +INF и -INF для плюс и минус бесконечности, +NAN и -NAN для не числовых значений. Эта функция прекращает преобразование на первом не распознаваемом символе. Strtod аналогична atof, она дает лучшее распознавание ошибок, и поэтому в некоторых случаях предпочтительнее.
Возвращаемое значение
Atof возвращает преобразованное значение указанной символьной строки. В случае переполнения atof возвращает положительное или отрицательное значение HUGE_VAL, глобальная переменная errno устанавливается в ERANGE и функция matherr не вызывается.
Переносимость
Поддерживается в системах UNIX и определена в ANSI.
Пример
#include<stdlib.h>
#include<stdio.h>
int main(void)
{
float f;
char *str = "12345.678";
f = atof(str);
printf("строка = %s значение = %5.3f\n",str,f);
return 0;
}