std::stof, std::stod, std::stold
Определено в заголовочном файле <string>
|
||
float stof( const std::string& str, size_t *pos = 0 ); |
(1) | (начиная с C++11) |
double stod( const std::string& str, size_t *pos = 0 ); |
(2) | (начиная с C++11) |
long double stold( const std::string& str, size_t *pos = 0 ); |
(3) | (начиная с C++11) |
Извлекает число с плавающей точкой из строки str.
Функция отбрасывает пробельные символы (определяемые с помощью std::isspace()), пока не будет найден первый непробельный символ. Затем из строки извлекаются символы, необходимые для формирования корректного представления числа с плавающей точкой и преобразуются в непосредственное значение данного числа. Допустимое значение числа с плавающей точкой может быть одним из следующих:
- десятичное выражение числа с плавающей точкой. Оно состоит из следующих частей:
- (необязательно) знак плюс или минус
- непустая последовательность десятичных цифр, которая может в необязательном порядке содержать десятичный разделитель (определяет мантиссу)
- (необязательно) символ
e
илиE
, за которым следует необязательный знак минус или плюс и непустая последовательность десятичных цифр (определяет экспоненту)
- двоичное выражение числа с плавающей точкой. Оно состоит из следующих частей:
- (необязательно) знак плюс или минус
-
0x
или0X
- непустая последовательность шестнадцатеричных цифр, которая может в необязательном порядке содержать десятичный разделитель (определяет мантиссу)
- (необязательно) символ
p
илиP
, за которым следует необязательный знак минус или плюс и непустая последовательность шестнадцатеричных цифр (определяет экспоненту)
- выражение бесконечности. Оно состоит из следующих частей:
- (необязательно) знак плюс или минус
-
INF
илиINFINITY
без учета регистра
- выражение NaN (Not-a-Number). Оно состоит из следующих частей:
- (необязательно) знак плюс или минус
-
NAN
илиNAN(
последовательность_символов)
без учета регистра символовNAN
. последовательность_символов может содержать только буквенно-цифровые символы. Результатом будет значение с плавающей точкой, т.н. тихий NaN (quiet NaN)
Индекс первого непреобразованного символа сохраняется в pos. Если в качестве pos передан NULL, параметр игнорируется.
Содержание |
[править] Параметры
str | - | строка для преобразования |
pos | - | адрес переменной целочисленного типа для сохранения в ней индекса первого непреобразованного символа |
[править] Возвращаемое значение
Строка, преобразованная в число с плавающей точкой указанного типа.
[править] Исключения
std::invalid_argument, если преобразование не может быть выполнено
std::out_of_range, если преобразованное значение будет выходить за границы диапазона значений типа результата
[править] См. также
(C++11) (C++11) (C++11) |
преобразует строку в знаковое целое число (функция) |
(C++11) (C++11) |
преобразует строку в беззнаковое целое число (функция) |