다음을 통해 공유


_ecvt_s

문자열로 double 을 변환합니다. CRT의 보안 기능 에 설명된 대로 이 버전은 보안 향상 기능이 포함된 _ecvt 버전입니다.

errno_t _ecvt_s( 
   char * _Buffer,
   size_t _SizeInBytes,
   double _Value,
   int _Count,
   int *_Dec,
   int *_Sign
);
template <size_t size>
errno_t _ecvt_s( 
   char (&_Buffer)[size],
   double _Value,
   int _Count,
   int *_Dec,
   int *_Sign
); // C++ only

매개 변수

  • [out] _Buffer
    변환의 결과, 숫자의 문자열에 대한 포인터를 사용하여 채워집니다.

  • [in] _SizeInBytes
    버퍼의 크기(바이트)입니다.

  • [in] _Value
    변환될 수 있는 숫자

  • [in] _Count
    저장된 자릿수입니다.

  • [out] _Dec
    소수점 위치를 저장합니다.

  • [out] _Sign
    변환된 숫자의 부호입니다.

반환 값

성공시 0입니다. 오류가 발생한 경우 반환 값은 오류 코드입니다. 오류 코드는 Errno.h에서 정의 됩니다. 자세한 내용은 errno, _doserrno, _sys_errlist 및 _sys_nerr을 참조하십시오.

다음 표에 나열된 것과 같은 잘못된 매개 변수의 경우, 매개 변수 유효성 검사에 설명된대로 이 함수는 잘못된 매개 변수 처리기를 호출합니다. 계속해서 실행하도록 허용된 경우, 함수는 errno 를 EINVAL 에 설정하고 EINVAL을 반환합니다.

오류 조건

_Buffer

_SizeInBytes

_Value

_Count

_Dec

_Sign

반환 값

buffer 의 값입니다.

NULL

any

any

any

any

any

EINVAL

수정 되지 않음

NULL값이 아님(유효한 메모리를 가리킴)

<=0

any

any

any

any

EINVAL

수정 되지 않음

any

any

any

any

NULL

any

EINVAL

수정 되지 않음

any

any

any

any

any

NULL

EINVAL

수정 되지 않음

보안 문제

buffer 가 올바른 메모리를 가리키지 않으며 NULL 이 아닌 경우, _ecvt_s 는 액세스 위반을 발생시킬 수 있습니다.

설명

_ecvt_s 함수는 부동 소수점 숫자를 문자열로 변환합니다. _Value 매개 변수는 변환된 부동 소수점 숫자입니다. 이 함수는 문자열로 _Value 의 숫자를 최대 count 로 저장하고 null 문자 ('\0)을 추가합니다. 만일 _Value 에서 자리수가 _Count 를 넘는 경우, 반올림 됩니다. count 보다 적은 자릿수인 경우, 문자열은 0으로 채워집니다.

숫자만이 문자열에 저장됩니다. 소수점의 위치 및 _Value의 부호는 호출 이후 _Dec과 _Sign로부터 얻을 수 있습니다. _Dec 매개 변수는 문자열의 시작 부분에 대한 소수점의 위치를 제공하는 정수의 값을 가리킵니다. 0 또는 음수 값은 소수점이 첫째 자리의 왼쪽에 위치하는 것을 가리킵니다. _Sign 매개 변수는 변환 된 숫자의 부호를 나타내는 정수를 가리킵니다. 정수의 값이 0이면, 양수입니다. 그렇지 않으면 음수입니다.

_CVTBUFSIZE 길이의 버퍼는 부동 소수점 값에 대해 충분해야 합니다.

_ecvt_s_fcvt_s에서 _Count 매개 변수의 번역 차이입니다. _ecvt_s 는 _Count 을 출력 문자열의 전체 자릿수로 해석하며, _fcvt_s 은 _Count 를 소수점 뒤의 자릿수로 해석합니다.

C++에서 이 함수를 사용하는 것은 템플릿 오버로드에 의해 단순화됩니다; 오버로드는 자동으로 버퍼의 길이를 추정할수 있고, 크기 인수를 지정할 필요가 없습니다. 자세한 내용은 안전한 템플릿 오버로드을 참조하십시오.

이러한 함수의 디버그 버전은 우선 0xFD로 버퍼를 채웁니다. 이 동작을 사용하지 않으려면 _CrtSetDebugFillThreshold를 사용하십시오.

요구 사항

Function

필수 헤더

선택적 헤더

_ecvt_s

<stdlib.h>

<<errno.h>>

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

예제

// ecvt_s.c
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>

int main( )
{
  char * buf = 0;
  int decimal;
  int sign;
  int err;

  buf = (char*) malloc(_CVTBUFSIZE);
  err = _ecvt_s(buf, _CVTBUFSIZE, 1.2, 5, &decimal, &sign);
  
  if (err != 0)
  {
     printf("_ecvt_s failed with error code %d\n", err);
     exit(1);
  }

  printf("Converted value: %s\n", buf);  
  
}
  

해당 .NET Framework 항목

ToString

참고 항목

참조

데이터 변환

부동 소수점 지원

atof, _atof_l, _wtof, _wtof_l

_ecvt

_fcvt_s

_gcvt_s