std:: stof, std:: stod, std:: stold
|
헤더 파일에 정의됨
<string>
|
||
|
float
stof
(
const
std::
string
&
str,
std::
size_t
*
pos
=
nullptr
)
;
|
(1) | (C++11부터) |
|
float
stof
(
const
std::
wstring
&
str,
std::
size_t
*
pos
=
nullptr
)
;
|
(2) | (C++11부터) |
|
double
stod
(
const
std::
string
&
str,
std::
size_t
*
pos
=
nullptr
)
;
|
(3) | (C++11부터) |
|
double
stod
(
const
std::
wstring
&
str,
std::
size_t
*
pos
=
nullptr
)
;
|
(4) | (C++11부터) |
|
long
double
stold
(
const
std::
string
&
str,
std::
size_t
*
pos
=
nullptr
)
;
|
(5) | (C++11부터) |
|
long
double
stold
(
const
std::
wstring
&
str,
std::
size_t
*
pos
=
nullptr
)
;
|
(6) | (C++11부터) |
문자열 str 에서 부동 소수점 값을 해석합니다.
변환 함수 내부의 포인터 ptr 를 char * (1,3,5) 또는 wchar_t * (2,4,6) 타입으로 설정합니다.
함수는 ( std::isspace 에 의해 결정된) 공백 문자들을 첫 번째 비-공백 문자를 찾을 때까지 버립니다. 그런 다음 유효한 부동 소수점 표현을 형성할 수 있을 때까지 가능한 많은 문자들을 취하여 부동 소수점 값으로 변환합니다. 유효한 부동 소수점 값은 다음 중 하나일 수 있습니다:
- decimal floating-point expression. 다음과 같은 부분들로 구성됩니다:
-
- (선택사항) 플러스 또는 마이너스 부호
- 현재 C locale 에 의해 결정되는 소수점 문자를 선택적으로 포함하는 비어 있지 않은 십진수 시퀀스 (가수를 정의함)
-
(선택사항)
e또는E다음에 선택적인 마이너스 또는 플러스 부호와 비어 있지 않은 십진수 시퀀스가 옴 (밑수 10 에 대한 지수를 정의함)
- 16진수 부동 소수점 표현식. 다음과 같은 부분들로 구성됩니다:
-
- (선택 사항) 플러스 또는 마이너스 부호
-
0x또는0X - 현재 C locale 에 의해 결정되는 십진점 문자를 선택적으로 포함하는 16진수 숫자의 비어 있지 않은 시퀀스 (유효 숫자 정의)
-
(선택 사항)
p또는P뒤에 선택적인 마이너스 또는 플러스 부호와 10진수 숫자의 비어 있지 않은 시퀀스가 옴 (밑수 2 에 대한 지수 정의)
- 무한대 표현식. 다음과 같은 부분들로 구성됩니다:
-
- (선택적) 양수 또는 음수 부호
-
INF또는INFINITY(대소문자 구분 없음)
- NaN(Not-a-Number) 표현식. 다음과 같은 부분들로 구성됩니다:
-
- (선택적) 양수 또는 음수 부호
-
NAN또는NAN(char_sequence )(NAN부분의 대소문자는 무시). char_sequence 는 숫자, 라틴 문자, 밑줄만 포함할 수 있습니다. 결과는 정숙 NaN 부동 소수점 값입니다.
- 현재 설치된 C locale 에서 허용될 수 있는 다른 모든 표현식.
만약 pos 가 null 포인터가 아니라면, ptr 은 str. c_str ( ) 에서 변환되지 않은 첫 번째 문자의 주소를 받게 되며, 해당 문자의 인덱스가 계산되어 * pos 에 저장되어 변환 과정에서 처리된 문자 수를 나타냅니다.
목차 |
매개변수
| str | - | 변환할 문자열 |
| pos | - | 처리된 문자 수를 저장할 정수의 주소 |
반환값
지정된 부동 소수점 타입으로 변환된 문자열.
예외
std::invalid_argument 변환을 수행할 수 없는 경우.
std::out_of_range 변환된 값이 결과 타입의 범위를 벗어나거나 기본 함수( std::strtof , std::strtod 또는 std::strtold )가 errno 를 ERANGE 로 설정하는 경우.
예제
|
이 섹션은 불완전합니다
이유: 예제 없음 |
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
| LWG 2009 | C++11 |
std::out_of_range
변환된 값이 결과 타입의 범위를 벗어나는 경우
예외가 발생하지 않음 |
예외 발생 |
| LWG 2403 | C++11 |
stof
가
std::strtod
또는
std::wcstod
호출
|
stof
가
std::strtof
또는
std::wcstof
호출
|
참고 항목
|
(C++11)
(C++11)
(C++11)
|
문자열을 부호 있는 정수로 변환
(함수) |
|
(C++11)
(C++11)
|
문자열을 부호 없는 정수로 변환
(함수) |
|
(C++17)
|
문자 시퀀스를 정수 또는 부동 소수점 값으로 변환
(함수) |