std::atof — cppreference.com
Материал из cppreference.com
<tbody> </tbody>
| Определено в заголовочном файле |
||
|
|
||
Конвертирует строку, доступную по указателю 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("ошибка") << '\n'; }
Вывод:
1.23e-08 0.012 1.5e+17 -107.75 inf nan 0