atof
|
Определено в заголовочном файле
<stdlib.h>
|
||
|
double
atof
(
const
char
*
str
)
;
|
||
Интерпретирует значение с плавающей запятой в строке байтов, на которую указывает str .
Функция отбрасывает любые пробельные символы (определяемые с помощью isspace ) до тех пор, пока не будет найден первый непробельный символ. Затем она принимает максимально возможное количество символов, формирующих корректное представление числа с плавающей точкой, и преобразует их в значение с плавающей точкой. Корректное значение с плавающей точкой может быть одним из следующих:
- десятичное выражение с плавающей точкой. Оно состоит из следующих частей:
-
- (необязательно) знак плюс или минус
- непустая последовательность десятичных цифр, возможно содержащая символ десятичной точки (как определено текущей локалью C ) (определяет мантиссу)
-
(необязательно)
eилиEс последующим необязательным знаком минус или плюс и непустой последовательностью десятичных цифр (определяет экспоненту по основанию 10 )
|
(начиная с C99) |
- любое другое выражение, которое может быть принято текущей установленной C locale .
Содержание |
Параметры
| str | - | указатель на нуль-терминированную байтовую строку для интерпретации |
Возвращаемое значение
double значение, соответствующее содержимому str при успешном выполнении. Если преобразованное значение выходит за пределы диапазона возвращаемого типа, возвращаемое значение не определено. Если преобразование не может быть выполнено, 0.0 возвращается.
Примечания
Название расшифровывается как «ASCII to float».
Пример
#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 }
Возможный вывод:
-1.23e-08 0.012 1.5e+17 -107.75 inf nan inf 0 0
Ссылки
- Стандарт C23 (ISO/IEC 9899:2024):
-
- 7.22.1.1 Функция atof (стр.: TBD)
- Стандарт C17 (ISO/IEC 9899:2018):
-
- 7.22.1.1 Функция atof (стр.: TBD)
- Стандарт 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++ documentation
для
atof
|
|