std::atof
Определён в заголовочном файле <cstdlib> | ||
|---|---|---|
double atof( const char* str ); |
Интерпретирует значение с плавающей точкой в байтовой строке, на которую указывает str.
Функция отбрасывает все символы пробельных символов (согласно определению std::isspace), пока не будет найден первый непробельный символ. Затем она считывает максимально возможное количество символов, образующих корректное представление числа с плавающей точкой, и преобразует их в значение с плавающей точкой. Корректное значение с плавающей точкой может быть одним из следующих:
- десятичное выражение с плавающей точкой. Оно состоит из следующих частей:
- (необязательно) знак плюс или минус
- непустая последовательность десятичных цифр, которая может содержать символ десятичной точки (определяемый текущей локалью C) (задаёт значащую часть)
-
(необязательно)
eилиE, за которым следует необязательный знак минус или плюс и непустая последовательность десятичных цифр (задаёт показатель степени по основанию 10)
| (начиная с C++11) |
- любое другое выражение, которое может быть принято текущей установленной локалью C.
Параметры
| str | - | указатель на завершающуюся нулём байтовую строку для интерпретации |
Возвращаемое значение
double значение, соответствующее содержимому str, в случае успеха. Если преобразованное значение выходит за пределы диапазона возвращаемого типа, возвращаемое значение не определено. Если выполнить преобразование невозможно, возвращается 0.0.
Пример
#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';
}
Вывод:
1.23e-08 0.012 1.5e+17 -107.75 inf nan 0
См. также
|
(C++11)(C++11)(C++11) | преобразует строку в значение с плавающей точкой (функция) |
| преобразует байтовую строку в значение с плавающей точкой (функция) |
|
|
(C++17) | преобразует последовательность символов в целочисленное значение или значение с плавающей точкой (функция) |
|
(C++11) | преобразует байтовую строку в целочисленное значение (функция) |
Документация C для atof |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/string/byte/atof