정보: printf()는 "g" 서식 지정자에 대 한 설명

만료된 KB 콘텐츠 고지 사항

이 문서는 Microsoft에서 더 이상 지원하지 않는 제품에 대해 작성되었습니다. 따라서 이 문서는 “있는 그대로" 제공되며 더 이상 업데이트되지 않습니다.

요약


Microsoft c에서 printf() 형식 지정자 ("g"에서 결과 출력 형식은 정확히 일치 하지 않는 형식 지정자 "e" 또는 "f" 결과 출력 형식입니다. 설명서에 따르면 "g" 형식 "f" 또는 "e"를 사용 합니다 더 압축 됩니다. 이것은 전체 형식 의미에서 true 있지만 일부의 차이점이 있습니다.


"F" 형식에서 보다 "g" 형식으로 정밀도 값은 다르게 해석 됩니다. 설명서는 이러한 차이 설명합니다. "F"에 대 한 자릿수 소수점 자릿수를 지정합니다. "G" 정밀도 인쇄는 유효 숫자의 최대 수를 지정 합니다. 다음 예제에서는 요약에서 설명한 차이 보여 줍니다.

샘플 코드

#include <stdio.h>
void main (void)
{
double x = 2.0/3.0; /* 0.666... */
double y;

y = 6.0 + x;
printf ("%.4g\n", y);
printf ("%.4f\n", y);
printf ("%.4e\n\n", y);

y = 66.0 + x;
printf ("%.4g\n", y);
printf ("%.4f\n", y);
printf ("%.4e\n\n", y);

y = 666.0 + x;
printf ("%.4g\n", y);
printf ("%.4f\n", y);
printf ("%.4e\n\n", y);

y = 6666.0 + x;
printf ("%.4g\n", y);
printf ("%.4f\n", y);
printf ("%.4e\n\n", y);

y = 66666.0 + x;
printf ("%.4g\n", y); /* switches to "e" notation here */
printf ("%.4f\n", y);
printf ("%.4e\n\n", y);
}
위 프로그램의 결과 아래와 같이 정확한.

6.667
6.6667
6.6667e+000

66.67
66.6667
6.6667e+001

666.7
666.6667
6.6667e+002

6667
6666.6667
6.6667e+003

6.667e+004
66666.6667
6.6667e+004
속성

문서 ID: 43392 - 마지막 검토: 2017. 2. 7. - 수정: 1

피드백