atof
Определено в заголовочном файле <stdlib.h> |
||
|---|---|---|
double atof( const char* str ); |
Интерпретирует значение с плавающей точкой в строке байтов, на которую указывает str.
Функция игнорирует пробельные символы (как определено isspace) до тех пор, пока не будет найден первый непробельный символ. Затем она принимает как можно больше символов для формирования допустимого представления с плавающей точкой и преобразует их в значение с плавающей точкой. Допустимое значение с плавающей точкой может быть одним из следующих:
- десятичное представление с плавающей точкой. Оно состоит из следующих частей:
- (необязательно) знак плюс или минус
- непустая последовательность десятичных цифр, которая может содержать десятичную точку (как определено текущим C локалем) (определяет мантиссу)
- (необязательно)
eилиEс последующим необязательным знаком плюс или минус и непустой последовательностью десятичных цифр (определяет показатель степени по основанию 10)
|
(с C99) |
- любое другое представление, которое может быть принято текущим C локалем
Параметры
| str | - | указатель на завершающуюся нулём строку байтов для интерпретации |
Возвращаемое значение
Значение с плавающей точкой, соответствующее содержимому str при успехе. Если преобразованное значение выходит за пределы диапазона возвращаемого типа, значение возврата не определено. Если преобразование невозможно, возвращается 0.0.
Примечания
Название функции означает "ASCII в float".
Пример
#include <stdlib.h>
#include <stdio.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
}Возможный вывод:
-1.23e-08 0.012 1.5e+17 -107.75 inf nan inf 0 0
Ссылки
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.22.1.1 Функция atof (стр. 341)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.20.1.1 Функция atof (стр. 307)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
- 4.10.1.1 Функция atof
См. также
|
(C99)(C99) |
преобразует строку байтов в значение с плавающей точкой (функция) |
Документация C++ для atof |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/string/byte/atof