strtold
, _strtold_l
, wcstold
_wcstold_l
문자열을 long 배정밀도 부동 소수점 값으로 변환합니다.
구문
long double strtold(
const char *strSource,
char **endptr
);
long double _strtold_l(
const char *strSource,
char **endptr,
_locale_t locale
);
long double wcstold(
const wchar_t *strSource,
wchar_t **endptr
);
long double wcstold_l(
const wchar_t *strSource,
wchar_t **endptr,
_locale_t locale
);
매개 변수
strSource
변환할 Null 종료 문자열입니다.
endptr
검색을 중지하는 문자에 대한 포인터입니다.
locale
사용할 로캘입니다.
반환 값
strtold
는 표현이 오버플로를 유발하는 경우를 제외하고 부동 소수점 숫자의 값을 long double
/>로 반환합니다. 이 경우 함수는 +/-HUGE_VALL
를 반환합니다. 기호 HUGE_VALL
는 나타낼 수 없는 값의 부호와 일치합니다. 변환을 수행할 수 없거나 언더플로가 발생하면 strtold
는 0을 반환합니다.
wcstold
는 strtold
와 동일한 값을 반환합니다. 두 함수 errno
모두 매개 변수 유효성 검사에 ERANGE
설명된 대로 오버플로 또는 언더플로가 발생하고 잘못된 매개 변수 처리기가 호출되는 경우로 설정됩니다.
반환 코드에 대한 자세한 내용은 , , 및 를 참조하세요errno
._sys_nerr
_sys_errlist
_doserrno
설명
각 함수는 입력 문자열 strSource
을 long double
로 변환합니다. 함수는 strtold
숫자의 일부로 인식할 수 없는 첫 번째 문자에서 문자열 strSource
읽기를 중지합니다. 종료 null 문자일 수 있습니다. strtold
의 와이드 문자 버전은 wcstold
입니다. 이 함수의 strSource
인수는 와이드 문자열입니다. 그 외의 경우에는 이들 함수가 동일하게 동작합니다.
기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.
일반 텍스트 루틴 매핑
TCHAR.H 루틴 | _UNICODE 및 _MBCS 정의되지 않음 |
정의된 _MBCS |
정의된 _UNICODE |
---|---|---|---|
_tcstold |
strtold |
strtold |
wcstold |
_tcstold_l |
_strtold_l |
_strtold_l |
_wcstold_l |
현재 로캘의 LC_NUMERIC
범주 설정에 따라 strSource
의 기수 문자 인식이 결정됩니다. 자세한 내용은 setlocale
, _wsetlocale
을 참조하세요. _l
접미사가 없는 함수는 현재 로캘을 사용합니다. _strtold_l
및 _wcstold_l
은 전달된 로캘을 대신 사용한다는 점을 제외하면 _strtold
및 _wcstold
와 동일합니다. 자세한 내용은 Locale을 참조하세요.
그렇지 않은 NULL
경우 endptr
검색을 중지한 문자에 대한 포인터가 가리키는 endptr
위치에 저장됩니다. 올바른 숫자를 찾을 수 없거나 잘못된 밑을 지정하여 변환을 수행할 수 없는 경우에는 strSource
의 값이 endptr
에서 가리키는 위치에 저장됩니다.
strtold
에서는 strSource
이 다음 형식의 문자열을 가리켜야 합니다.
[
whitespace
][sign
][digits
][.digits
] [{d
e
D
| |E
| }[sign
]]digits
whitespace
는 공백 및 탭 문자(무시됨)로 구성될 수 있습니다. sign
은 더하기 기호(+
) 또는 빼기 기호(-
)이고 digits
는 하나 이상의 10진수입니다. 기수 문자 앞에 숫자가 없는 경우 기수 문자 뒤에는 숫자가 하나 이상 있어야 합니다. 10진수 뒤에 지수가 올 수 있습니다. 지수는 소개 문자(d
, D
, e
또는 E
) 및 부호 있는 정수(선택 사항)로 구성됩니다. 지수 부분이나 radix 문자가 나타나지 않으면 radix 문자가 문자열의 마지막 숫자를 따르는 것으로 간주됩니다. 이 양식에 맞지 않는 첫 번째 문자는 검사를 중지합니다.
요구 사항
루틴에서 반환된 값 | 필수 헤더 |
---|---|
strtold , _strtold_l |
<stdlib.h> |
wcstold , _wcstold_l |
<stdlib.h> 또는 <wchar.h> |
호환성에 대한 자세한 내용은 호환성을 참조하세요.
예시
// crt_strtold.c
// Build with: cl /W4 /Tc crt_strtold.c
// This program uses strtold to convert a
// string to a long double-precision value.
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
char *string;
char *stopstring;
long double x;
string = "3.1415926535898This stopped it";
x = strtold(string, &stopstring);
printf("string = %s\n", string);
printf(" strtold = %.13Lf\n", x);
printf(" Stopped scan at: %s\n\n", stopstring);
}
string = 3.1415926535898This stopped it
strtold = 3.1415926535898
Stopped scan at: This stopped it
참고 항목
데이터 변환
수학 및 부동 소수점 지원
멀티바이트 문자 시퀀스 해석
Locale
문자열에서 숫자 값 함수로
strtod
, _strtod_l
, wcstod
_wcstod_l
strtol
, wcstol
, _strtol_l
_wcstol_l
strtoul
, _strtoul_l
, wcstoul
_wcstoul_l
atof
, _atof_l
, _wtof
_wtof_l
localeconv
_create_locale
, _wcreate_locale
_free_locale