자바의 정석 - 기초편

printf를 이용한 출력

ODaram 2022. 7. 28. 16:02

형식화된 출력 = printf()

 > println() 의 단점 - 출력형식 지정 불가

    1) 실수의 자리수 조절 불가 - 소수점 n자리만 출력하려면?

          System.out.println(10.0 / 3); // 3.33333333333....... \

    2) 10진수로만 출력된다. - 3진수, 16진수로 출력하려면?

          System.out.println(0x1A); // 26 (10진수)

 

 > printf()로 출력형식 지정가능

          System.out.printf("%.2f", 10.0/3); // 3.33 (%.2f : 소수점 둘째자리 까지 출력 / 지시자)

 

          System.out.printf("%d", 0x1A); // 26 (%d : 10진수로 출력 / 지시자)

          System.out.printf("%x", 0x1A); // 1A (%x : 16진수로 출력 / 지시자)

 

Printf()의 지시자 (1/3)

지시자 종류

    System.out.printf( "age : %d year : %d \n , 14, 2017)

         >> "age : 14 year : 2017 \n" 이 화면에 출력된다. (\n 개행문자 : 줄바꿈), (printf : 줄바꿈X)

      System.out.printf( "age : %d  , age); // 출력 후 줄바꿈을 하지 않는다.

      System.out.printf( "age : %d \n , age); // 출력 후 줄바꿈을 한다.

 

Printf()의 지시자 (2/3)

 1) 정수를 10진수, 8진수, 16진수로 출력

      System.out.printf("%d", 15); // 15 (10진수)

      System.out.printf("%o", 15); // 17 (8진수)

      System.out.printf("%x", 15); // f (16진수)

      System.out.printf("%s", Integer.toBinaryString(15)); // 1111 (2진수) toBinary 이진 String 문자열

 

 2) 8진수(0)와 16진수(0x)에 접두사 붙이기 

      System.out.printf("%#o", 15) // 017

      System.out.printf("%#x", 15) // 0xf

      System.out.printf("%#x", 15) // 0xf

 

 3) 실수 출력을 위한 지시자 %f - 지수형식(%e), 간략한 형식(%g)

      float f = 123.4567890f;

      System.out.printf("%f", f) // 123.456787 (소수점 아래 6자리) (정밀도 7자리  / 87은 의미 없는 숫자)

      System.out.printf("%e", f) // 1.234568e+02 (지수형식) (e+02 = 10^2)

      System.out.printf("%

g

", 123.456789); // 123.456 (지시자 g : 간략한 형식 / %f) 

      System.out.printf("%g", 0.0000001); // 1.00000e-8 (간략한 형식 / %e) 

 

Printf()의 지시자 (3/3)

      System.out.printf("[%5d]%n", 10);  // [   10]

      System.out.printf("[%-5d]%n", 10);  // [10   ] (: 왼쪽 정렬)

      System.out.printf("[%05d]%n", 10);  // [00010]

지시자 3/3

 

'자바의 정석 - 기초편' 카테고리의 다른 글

정수형의 오버플로우  (0) 2022.07.28
화면으로부터 입력 받기  (0) 2022.07.28
기본형의 종류와 범위  (0) 2022.07.28
기본형과 참조형  (0) 2022.07.28
두 변수 바꾸기  (0) 2022.07.28