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표현은 case 함수 반환 오버플로가 발생 할 때를 제외 하 고는 부동 소수점 숫자의 값을 반환 합니다. + /-HUGE_VAL.부호 HUGE_VAL 나타낼 수 없는 값의 부호를 찾습니다.strtod변환할 수 있습니다 또는 언더플로가 발생 하는 경우 0을 반환 합니다.
wcstodanalogously에 값을 반환 합니다 strtod.두 함수에 대 한 errno 로 설정 된 ERANGE 오버플로 또는 언더플로가 발생 하 고의 설명에 따라 잘못 된 매개 변수 처리기를 호출 하는 경우 매개 변수 유효성 검사.
참조 하십시오 _doserrno, errno, _sys_errlist, 및 _sys_nerr 이 고 다른 반환 코드에 대 한 자세한 내용은.
설명
각 함수 입력된 문자열 변환 nptr 에 있는 double.strtod 변환 기능 nptr 이중 정밀도 값입니다.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]
A whitespace 는 무시 됩니다; 공백, 탭 문자 중 구성 될 수 있습니다 sign하나는 플러스 (+) 또는 빼기 (-) (–). 및 digits 하나 이상의 소수점이 하 자릿수입니다.숫자가 앞 기 수 문자를 표시 하는 경우 하나 이상의 다음 기 수 문자를 나타나야 합니다.소수 자릿수는 소개 글자만 지수가가 따를 수 있습니다 (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 항목
참고 항목
참조
strtol, wcstol, _strtol_l, _wcstol_l
strtoul, _strtoul_l, wcstoul, _wcstoul_l