형식화된 출력 = 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]
'자바의 정석 - 기초편' 카테고리의 다른 글
정수형의 오버플로우 (0) | 2022.07.28 |
---|---|
화면으로부터 입력 받기 (0) | 2022.07.28 |
기본형의 종류와 범위 (0) | 2022.07.28 |
기본형과 참조형 (0) | 2022.07.28 |
두 변수 바꾸기 (0) | 2022.07.28 |