다음을 통해 공유


strtod, _strtod_l, wcstod, _wcstod_l

이중 정밀도 값으로 문자열을 변환 합니다.

double strtod(
   const char *nptr,
   char **endptr 
);
double _strtod_l(
   const char *nptr,
   char **endptr,
   _locale_t locale
);
double wcstod(
   const wchar_t *nptr,
   wchar_t **endptr 
);
double wcstod_l(
   const wchar_t *nptr,
   wchar_t **endptr,
   _locale_t locale
);

매개 변수

  • nptr
    변환할 Null 종료 문자열입니다.

  • endptr
    스캔을 중지하는 문자에 대한 포인터입니다.

  • locale
    사용할 로캘입니다.

반환 값

strtod는 오버플로가 발생되는 시기를 제외하고 함수가 + /-HUGE_VAL를 반환하는 경우에 부동 소수점 숫자의 값을 반환합니다. HUGE_VAL의 기호는 나타낼 수 없는 값의 기호에 해당합니다. strtod 는 변환을 수행할 수 없거나 언더플로가 발생하는 경우 0을 반환합니다.

wcstod이 analogously 값을 strtod에 반환 합니다. 두 가지의 함수에 대해서 매개 변수 유효성 검사의 설명대로 오버플로 또는 언더플로가 발생하여 잘못된 매개 변수 처리기를 호출하는 경우 errno를 ERANGE로 설정합니다.

이러한 오류 코드 및 기타 오류 코드에 대한 자세한 내용은 _doserrno, errno, _sys_errlist 및 _sys_nerr 을 참조하십시오.

설명

각 함수는 입력 문자열 nptr을 double으로 변환합니다. strtod 함수는 nptr를 ldouble 정밀도 값으로 변환합니다. strtod는 숫자 부분으로 인식할 수 없는 첫 번째 문자에서 문자열 nptr 읽기를 중단합니다. 이는 null 종결 문자일 수 있습니다. wcstod는 strtod의 와이드 문자 버전이며, nptr 인수는 와이드 문자 문자열입니다. 그렇지 않다면 이러한 함수는 동일하게 작동합니다.

제네릭 텍스트 라우팅 매핑

TCHAR.H 루틴

_UNICODE 및 _MBCS 정의되지 않음

_MBCS 정의됨

_UNICODE 정의됨

_tcstod

strtod

strtod

wcstod

_tcstod_l

_strtod_l

_strtod_l

_wcstod_l

현재 로캘의 LC_NUMERIC 범주 설정은 nptr 에서 기수 문자 인식 여부를 결정합니다. *;*자세한 내용은setlocale 을 참조하십시오. _l 접미사가 없는 함수는 현재 로캘을 사용하며 _strtod_l 은 대신 전달된 로캘을 사용하는 경우를 제외하고 _strtod_l 와 동일합니다. 자세한 내용은 로캘을 참조하십시오.

endptr 가 NULL이 아닌 경우 스캔을 중지시키는 문자에 대한 포인터는 endptr가 가리키는 위치에 저장됩니다. 변환을 수행할 수 없는 경우(유효 숫자를 찾을 수 없거나 잘못된 기준이 지정됨), nptr 의 값은 endptr가 가리키는 위치에 저장됩니다.

strtod에서는 다음 양식의 문자열을 가리키는 nptr를 예상합니다.

[whitespace] [sign] [digits] [.digits] [ {d | D | e | E}[sign]digits]

whitespace는 무시되는 공백이나 탭 문자로 구성될 수 있으며 sign은 더하기(+) 또는 빼기(–)이며 digits는 하나 이상의 숫자입니다. 기수 문자 앞에 자릿수가 나타나지 않는 경우 하나 이상의 자릿수가 기수 문자 뒤에 나타나야 합니다. 10 진수는 소개서를 구성하는 지수(d, D, e, 또는 E)와 선택적으로 서명된 정수 다음에 올 수 있습니다. 지수부 또는 기수 문자가 나타나지 않는 경우 기수 문자는 문자열의 마지막 숫자를 따릅니다. 이 폼에 맞지 않는 첫 번째 문자는 검색을 중지합니다.

요구 사항

루틴

필수 헤더

strtod, _strtod_l

<stdlib.h>

wcstod, _wcstod_l

<stdlib.h> 또는 <wchar.h>

호환성에 대한 자세한 내용은 소개 단원의 호환성 부분을 참조하십시오.

예제

// crt_strtod.c
// This program uses strtod to convert a
// string to a double-precision value; strtol to
// convert a string to long integer values; and strtoul
// to convert a string to unsigned long-integer values.
//

#include <stdlib.h>
#include <stdio.h>

int main( void )
{
   char   *string, *stopstring;
   double x;
   long   l;
   int    base;
   unsigned long ul;

   string = "3.1415926This stopped it";
   x = strtod( string, &stopstring );
   printf( "string = %s\n", string );
   printf("   strtod = %f\n", x );
   printf("   Stopped scan at: %s\n\n", stopstring );

   string = "-10110134932This stopped it";
   l = strtol( string, &stopstring, 10 );
   printf( "string = %s\n", string );
   printf("   strtol = %ld\n", l );
   printf("   Stopped scan at: %s\n\n", stopstring );

   string = "10110134932";
   printf( "string = %s\n", string );
 
   // Convert string using base 2, 4, and 8:
   for( base = 2; base <= 8; base *= 2 )
   {
      // Convert the string:
      ul = strtoul( string, &stopstring, base );
      printf( "   strtol = %ld (base %d)\n", ul, base );
      printf( "   Stopped scan at: %s\n", stopstring );
   }
}
  

해당 .NET Framework 항목

System::Convert::ToDouble

참고 항목

참조

데이터 변환

부동 소수점 지원

멀티바이트 문자 시퀀스 해석

로캘

문자열을 숫자 값으로 변환하는 함수

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