[C] printf 함수에서 실수 소수점 자리 및 너비 지정하는 방법

printf 함수를 이용한 실수 출력 시, 소수점 자리 및 너비를 지정하는 방법에 대한 간단한 정리.


예제 코드

1
2
3
4
5
6
7
8
#include <stdio.h>
#include <math.h>
int main(int argc, const char * argv[])
{
  for (int i = 1; i <= 200; i+=10)
  printf(“%3d = %10.7f\n”, i, sqrt((double) i));
}
cs

%d, 정수 출력

%3d는 공백을 포함하여 총 3의 길이를 갖는 정수를 출력합니다. 즉, 1을 출력 시엔 ”  1″, 10을 출력 시엔, ” 10″, 100을 출력 시엔 “100”을 출력합니다.

또한, 정수의 길이를 명시할 때, * 기호를 사용하여 아래와 같이 5의 길이를 가진 10을 출력할 수도 있다.

코드

printf ("Width trick: %*d \n", 5, 10);

출력

Width trick:    10 

%f, 실수 출력

%10.7f는 크게 소수점 앞의 숫자 10과 소수점 뒤의 숫자 7로 나뉩니다. 여기서 10은 소수점 자리수를 포함하여 출력되는 숫자의 총 길이이며, 7은 소수점의 길이입니다. 소수점이 7의 자리수를 넘어갈 경우, 반올림 처리되며 총 숫자의 길이가 10에 미치지 못할 경우, 앞에서부터 공백처리합니다.

아래 출력 예제를 참조 바랍니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  1 =  1.0000000
 11 =  3.3166248
 21 =  4.5825757
 31 =  5.5677644
 41 =  6.4031242
 51 =  7.1414284
 61 =  7.8102497
 71 =  8.4261498
 81 =  9.0000000
 91 =  9.5393920
101 = 10.0498756
111 = 10.5356538
121 = 11.0000000
131 = 11.4455231
141 = 11.8743421
151 = 12.2882057
161 = 12.6885775
171 = 13.0766968
181 = 13.4536240
191 = 13.8202750
cs

아래 링크를 참조하시면 아래 예제 코드에 관련된 다양한 출력 방법에 대한 코드를 찾아보실 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <math.h>
int main(int argc, const char * argv[]) {
  printf (“Characters: %c %c \n”‘a’65);
  printf (“Decimals: %d %ld\n”1977, 650000L);
  printf (“Preceding with blanks: %10d \n”1977);
  printf (“Preceding with zeros: %010d \n”1977);
  printf (“Some different radices: %d %x %o %#x %#o \n”100100100100100);
  printf (“floats: %4.2f %+.0e %E \n”3.14163.14163.1416);
  printf (“Width trick: %*d \n”510);
  printf (“%s \n”“A string”);
  return 0;
}
cs

참조

댓글 남기기