다음을 통해 공유


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을 반환합니다.

wcstoldstrtold와 동일한 값을 반환합니다. 두 함수 errno 모두 매개 변수 유효성 검사ERANGE 설명된 대로 오버플로 또는 언더플로가 발생하고 잘못된 매개 변수 처리기가 호출되는 경우로 설정됩니다.

반환 코드에 대한 자세한 내용은 , , 및 를 참조하세요errno._sys_nerr_sys_errlist_doserrno

설명

각 함수는 입력 문자열 strSourcelong 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] [{deD | | 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