Spec-Zone.ru › C++

std::atof

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

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

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

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

Параметры

str - указатель на завершаемую нулём строку байтов, подлежащую интерпретации

Возвращаемое значение

Значение с плавающей запятой, соответствующее содержимому 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

См. также

stofstodstold
(C++11)(C++11)(C++11)
преобразует строку в значение с плавающей запятой
(функция)
strtofstrtodstrtold
преобразует строку байтов в значение с плавающей запятой
(функция)
from_chars
(C++17)
преобразует последовательность символов в целое или с плавающей запятой
(функция)
atoiatolatoll
(C++11)
преобразует строку байтов в целое значение
(функция)
Документация C для atof

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/string/byte/atof

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API