Namespaces
Variants

std:: atof

From cppreference.net
Определено в заголовочном файле <cstdlib>
double atof ( const char * str ) ;

Интерпретирует значение с плавающей точкой в строке байтов, на которую указывает str .

Функция отбрасывает все пробельные символы (определяемые с помощью std::isspace ) до тех пор, пока не будет найден первый непробельный символ. Затем она принимает максимально возможное количество символов, формирующих корректное представление числа с плавающей точкой, и преобразует их в значение с плавающей точкой. Корректное значение с плавающей точкой может быть одним из следующих:

  • десятичное выражение с плавающей запятой. Оно состоит из следующих частей:
  • (необязательно) знак плюс или минус
  • непустая последовательность десятичных цифр, возможно содержащая символ десятичной точки (определяется текущей локалью C) (определяет мантиссу)
  • (необязательно) e или E с последующим необязательным знаком минус или плюс и непустой последовательностью десятичных цифр (определяет экспоненту по основанию 10 )
  • шестнадцатеричное выражение с плавающей точкой. Состоит из следующих частей:
  • (необязательно) знак плюс или минус
  • 0x или 0X
  • непустая последовательность шестнадцатеричных цифр, опционально содержащая символ десятичной точки (определяется текущей C локалью ) (определяет мантиссу)
  • (необязательно) p или P с последующим необязательным знаком минус или плюс и непустой последовательностью десятичных цифр (определяет экспоненту по основанию 2 )
  • выражение бесконечности. Состоит из следующих частей:
  • (необязательно) знак плюс или минус
  • INF или INFINITY без учета регистра
  • выражение не-числа. Состоит из следующих частей:
  • (необязательно) знак плюс или минус
  • NAN или NAN( char_sequence  ) без учета регистра для части NAN . char_sequence может содержать только цифры, латинские буквы и подчеркивания. Результатом является тихое значение NaN с плавающей точкой.
(since C++11)
  • любое другое выражение, которое может быть принято текущей установленной C locale .

Содержание

Параметры

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)
преобразует последовательность символов в целочисленное значение или значение с плавающей точкой
(функция)
преобразует байтовую строку в целочисленное значение
(функция)