다음을 통해 공유


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

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

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

설명

각 함수는 입력 문자열 strSourcefloat로 변환합니다. strtof 함수는 strSource을 단정밀도 값으로 변환합니다. strtof 는 숫자의 일부로 인식할 수 없는 첫 번째 문자에서 문자열 strSource 을 읽는 것을 중지합니다. 이 문자는 종료 null 문자일 수 있습니다. wcstofstrtof의 와이드 문자 버전입니다. 이 함수의 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진수 뒤에 지수가 올 수 있습니다. 지수는 소개 문자(eE) 및 부호 있는 정수(선택 사항)로 구성됩니다. 지수 부분이나 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