Пространства имён
Варианты
Действия

std::atof

Материал из cppreference.com
< cpp‎ | string‎ | byte
Определено в заголовочном файле <cstdlib>
double atof( const char *str );

Конвертирует строку, доступную по указателю str, в число с плавающей запятой.

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

  • десятичное выражение числа с плавающей точкой. Оно состоит из следующих частей:
  • (необязательно) знак плюс или минус
  • непустая последовательность десятичных цифр, которая может в необязательном порядке содержать десятичный разделитель (определяет мантиссу)
  • (необязательно) символ e или E, за которым следует необязательный знак минус или плюс и непустая последовательность десятичных цифр (определяет экспоненту)
  • двоичное выражение числа с плавающей точкой. Оно состоит из следующих частей:
  • (необязательно) знак плюс или минус
  • 0x или 0X
  • непустая последовательность шестнадцатеричных цифр, которая может в необязательном порядке содержать десятичный разделитель (определяет мантиссу)
  • (необязательно) символ p или P, за которым следует необязательный знак минус или плюс и непустая последовательность шестнадцатеричных цифр (определяет экспоненту)
  • выражение бесконечности. Оно состоит из следующих частей:
  • (необязательно) знак плюс или минус
  • INF или INFINITY без учета регистра
  • выражение NaN (Not-a-Number). Оно состоит из следующих частей:
  • (необязательно) знак плюс или минус
  • NAN или NAN(последовательность_символов) без учета регистра символов NAN. последовательность_символов может содержать только буквенно-цифровые символы. Результатом будет значение с плавающей точкой, т.н. тихий NaN (quiet NaN)

Содержание

[править] Параметры

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";
}

Вывод:

1.23e-08
0.012
1.5e+17
-107.75
inf
nan

[править] См. также

Преобразует однобайтовую строку в число с плавающей запятой
(функция) [править]