_gcvt
부동 소수점 값을 버퍼에 저장되는 문자열로 변환합니다. 이러한 기능의 더 안전한 버전을 사용할 수 있습니다. _gcvt_s를 참조하십시오.
char *_gcvt(
double value,
int digits,
char *buffer
);
매개 변수
value
변환될 값입니다.digits
저장된 유효 자릿수입니다.buffer
결과에 대한 저장소 위치입니다.
반환 값
_gcvt는 문자열의 자릿수에 대한 포인터를 반환합니다.
설명
_gcvt 함수는 부동 소수점 value 을 문자열로 변환하고 (10진수 및 부호 가능한 바이트 포함) buffer 에 문자열을 저장합니다. buffer는 변환된 값과 자동으로 추가되는 종료 null 문자를 수용하기에 충분히 커야 합니다. digits의 버퍼 크기 + 1이 사용되면, 함수는 버퍼의 끝을 덮어씁니다. 변환된 문자열은 소수점을 포함하며 부호와 지수 정보를 포함할 수 있기 때문입니다. 오버플로우에 대한 규정이 없습니다. _gcvt는 10 진수 형식으로 digits를 생성하려고 시도합니다. 할수 없는 경우, 지수 형식의 digits 숫자를 생성합니다. 따라오는 0들은 변환에서 무시될 수 있습니다.
_CVTBUFSIZE 길이의 buffer는 모든 부동 소수점 값에 대해 충분합니다.
이 함수는 해당 매개 변수의 유효성을 검사합니다. buffer이 NULL인 경우 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수가 호출됩니다. 계속해서 실행하도록 허용된 경우, 함수는 errno 를 EINVAL 에 설정하고 NULL을 반환합니다.
요구 사항
루틴 |
필수 헤더 |
---|---|
_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) );
}