다음을 통해 공유


_gcvt

부동 소수점 값을 버퍼에 저장되는 문자열로 변환합니다. 이 함수의 더 안전한 버전을 사용할 수 있습니다. 를 참조하세요 _gcvt_s.

구문

char *_gcvt(
   double value,
   int digits,
   char *buffer
);

매개 변수

value
변환할 값입니다.

digits
저장된 유효 자릿수입니다.

buffer
결과의 스토리지 위치입니다.

반환 값

_gcvt는 숫자 문자열에 대한 포인터를 반환합니다.

설명

_gcvt 함수는 부동 소수점 value를 문자열(소수점 및 가능한 부호 바이트를 포함함)로 변환하고 문자열을 buffer에 저장합니다. buffer는 변환된 값과 자동으로 추가되는 null 종결 문자를 포함할 만큼 충분히 커야 합니다. digits + 1의 버퍼 크기를 사용할 경우 함수는 버퍼 끝을 덮어씁니다. 변환된 문자열에 소수점이 포함되어 있고 기호 및 지수 정보를 포함할 수도 있기 때문에 덮어쓰기가 발생합니다. 함수는 오버플로를 고려하지 않습니다. _gcvtdigits 숫자를 10진수 형식으로 생성하려고 합니다. 그렇게 할 수 없는 경우 지수 형식으로 숫자를 생성합니다 digits . 변환 시 뒤에 오는 0을 표시하지 않을 수 있습니다.

모두 부동 소수점 값에는 _CVTBUFSIZE 길이의 buffer로 충분합니다.

이 함수는 해당 매개 변수의 유효성을 검사합니다. 검사점 생성 시 bufferNULL인 경우 Parameter Validation를 참조하세요. 계속해서 실행하도록 허용한 경우 이 함수는 errnoEINVAL로 설정하고 NULL을 반환합니다.

기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.

요구 사항

루틴에서 반환된 값 필수 헤더
_gcvt <stdlib.h>

호환성에 대한 자세한 내용은 호환성을 참조하세요.

예시

// crt_gcvt.c
// compile with: /W3
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int main( void )
{
   char buffer[_CVTBUFSIZE];
   double value = -1234567890.123;
   printf( "The following numbers were converted by _gcvt(value,12,buffer):\n" );
   _gcvt( value, 12, buffer ); // C4996
   // Note: _gcvt is deprecated; consider using _gcvt_s instead
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value *= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value *= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value *= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );

   printf( "\n" );
   value = -12.34567890123;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value /= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value /= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value /= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
}
The following numbers were converted by _gcvt(value,12,buffer):
buffer: '-1234567890.12' (14 chars)
buffer: '-12345678901.2' (14 chars)
buffer: '-123456789012' (13 chars)
buffer: '-1.23456789012e+012' (19 chars)

buffer: '-12.3456789012' (14 chars)
buffer: '-1.23456789012' (14 chars)
buffer: '-0.123456789012' (15 chars)
buffer: '-1.23456789012e-002' (19 chars)

참고 항목

데이터 변환
수학 및 부동 소수점 지원
atof, _atof_l, _wtof_wtof_l
_ecvt
_fcvt