_gcvt
부동 소수점 값을 버퍼에 저장되는 문자열로 변환합니다. 이 함수의 더 안전한 버전을 사용할 수 있습니다. 를 참조하세요 _gcvt_s
.
구문
char *_gcvt(
double value,
int digits,
char *buffer
);
매개 변수
value
변환할 값입니다.
digits
저장된 유효 자릿수입니다.
buffer
결과의 스토리지 위치입니다.
반환 값
_gcvt
는 숫자 문자열에 대한 포인터를 반환합니다.
설명
_gcvt
함수는 부동 소수점 value
를 문자열(소수점 및 가능한 부호 바이트를 포함함)로 변환하고 문자열을 buffer
에 저장합니다. buffer
는 변환된 값과 자동으로 추가되는 null 종결 문자를 포함할 만큼 충분히 커야 합니다. digits
+ 1의 버퍼 크기를 사용할 경우 함수는 버퍼 끝을 덮어씁니다. 변환된 문자열에 소수점이 포함되어 있고 기호 및 지수 정보를 포함할 수도 있기 때문에 덮어쓰기가 발생합니다. 함수는 오버플로를 고려하지 않습니다. _gcvt
는 digits
숫자를 10진수 형식으로 생성하려고 합니다. 그렇게 할 수 없는 경우 지수 형식으로 숫자를 생성합니다 digits
. 변환 시 뒤에 오는 0을 표시하지 않을 수 있습니다.
모두 부동 소수점 값에는 _CVTBUFSIZE
길이의 buffer
로 충분합니다.
이 함수는 해당 매개 변수의 유효성을 검사합니다. 검사점 생성 시 buffer
가 NULL
인 경우 Parameter Validation를 참조하세요. 계속해서 실행하도록 허용한 경우 이 함수는 errno
를 EINVAL
로 설정하고 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