strtof
, _strtof_l
, wcstof
_wcstof_l
문자열을 단정밀도 부동 소수점 값으로 변환합니다.
구문
float strtof(
const char *strSource,
char **endptr
);
float _strtof_l(
const char *strSource,
char **endptr,
_locale_t locale
);
float wcstof(
const wchar_t *strSource,
wchar_t **endptr
);
float wcstof_l(
const wchar_t *strSource,
wchar_t **endptr,
_locale_t locale
);
매개 변수
strSource
변환할 Null 종료 문자열입니다.
endptr
검색을 중지하는 문자에 대한 포인터입니다.
locale
사용할 로캘입니다.
반환 값
strtof
는 표현이 오버플로를 발생시키는 경우를 제외하고 부동 소수점 숫자의 값을 반환하며, 이 경우 함수는 +/-HUGE_VALF
를 반환합니다. 기호 HUGE_VALF
는 나타낼 수 없는 값의 부호와 일치합니다. 변환을 수행할 수 없거나 언더플로가 발생하면 strtof
는 0을 반환합니다.
wcstof
는 strtof
와 동일한 값을 반환합니다. 두 함수 errno
모두 매개 변수 유효성 검사에 ERANGE
설명된 대로 오버플로 또는 언더플로가 발생하고 잘못된 매개 변수 처리기가 호출되는 경우로 설정됩니다.
반환 코드에 대한 자세한 내용은 , , 및 를 참조하세요errno
._sys_nerr
_sys_errlist
_doserrno
설명
각 함수는 입력 문자열 strSource
을 float
로 변환합니다. strtof
함수는 strSource
을 단정밀도 값으로 변환합니다. strtof
는 숫자의 일부로 인식할 수 없는 첫 번째 문자에서 문자열 strSource
을 읽는 것을 중지합니다. 이 문자는 종료 null 문자일 수 있습니다. wcstof
은 strtof
의 와이드 문자 버전입니다. 이 함수의 strSource
인수는 와이드 문자열입니다. 그 외의 경우에는 이들 함수가 동일하게 동작합니다.
기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.
일반 텍스트 루틴 매핑
TCHAR.H 루틴 | _UNICODE 및 _MBCS 정의되지 않음 |
정의된 _MBCS |
정의된 _UNICODE |
---|---|---|---|
_tcstof |
strtof |
strtof |
wcstof |
_tcstof_l |
_strtof_l |
_strtof_l |
_wcstof_l |
현재 로캘의 범주 설정에 LC_NUMERIC
따라 radix 문자strSource
의 인식이 결정됩니다. 자세한 내용은 다음_wsetlocale
을 참조하세요setlocale
. _l
접미사가 없는 함수는 현재 로캘을 사용하며, 접미사가 있는 버전은 전달된 로캘을 대신 사용한다는 점을 제외하면 동일합니다. 자세한 내용은 Locale을 참조하세요.
그렇지 않은 NULL
경우 endptr
검색을 중지한 문자에 대한 포인터가 가리키는 endptr
위치에 저장됩니다. 올바른 숫자를 찾을 수 없거나 잘못된 밑을 지정하여 변환을 수행할 수 없는 경우에는 strSource
의 값이 endptr
에서 가리키는 위치에 저장됩니다.
strtof
에서는 strSource
이 다음 형식의 문자열을 가리켜야 합니다.
[whitespace
] [sign
] [digits
.digits
] [{e
| E
} [sign
] digits
]
whitespace
는 공백 및 탭 문자(무시됨)로 구성될 수 있습니다. sign
은 더하기 기호(+
) 또는 빼기 기호(-
)이고 digits
는 하나 이상의 10진수입니다. 기수 문자 앞에 숫자가 없는 경우 기수 문자 뒤에는 숫자가 하나 이상 있어야 합니다. 10진수 뒤에 지수가 올 수 있습니다. 지수는 소개 문자(e
및 E
) 및 부호 있는 정수(선택 사항)로 구성됩니다. 지수 부분이나 radix 문자가 나타나지 않으면 radix 문자가 문자열의 마지막 숫자를 따르는 것으로 간주됩니다. 이 양식에 맞지 않는 첫 번째 문자는 검사를 중지합니다.
이러한 함수의 UCRT 버전은 포트란 스타일(d
또는 D
) 지수 문자의 변환을 지원하지 않습니다. 이러한 비표준 확장은 CRT의 이전 버전에서 지원되었으므로 코드에 대한 중요한 변경 사항일 수 있습니다.
요구 사항
루틴에서 반환된 값 | 필수 헤더 |
---|---|
strtof , _strtof_l |
C: <stdlib.h> C++: <cstdlib> 또는 <stdlib.h> |
wcstof , _wcstof_l |
C: <stdlib.h> 또는 <wchar.h> C++: <cstdlib>, <stdlib.h> 또는 <wchar.h> |
호환성에 대한 자세한 내용은 호환성을 참조하세요.
예시
// crt_strtof.c
// This program uses strtof to convert a
// string to a single-precision value.
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
char *string;
char *stopstring;
float x;
string = "3.14159This stopped it";
x = strtof(string, &stopstring);
printf("string = %s\n", string);
printf(" strtof = %f\n", x);
printf(" Stopped scan at: %s\n\n", stopstring);
}
string = 3.14159This stopped it
strtof = 3.141590
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