Spec-Zone.ru › C++

std::atof

Определён в заголовочном файле <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 с плавающей точкой.
(начиная с 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

См. также

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/cpp/string/byte/atof

Spec-Zone.ru

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