Java- println(),printf()

춤추는개발자·2022년 11월 3일
0

Java 정리

목록 보기
3/59

보통 출력할려고 할 때 println을 많이 사용 할 것 입니다. 하지만 println 의 단점이 있는데 이것은 출력형식을 지정할 수 없다는 것 입니다.
좀 더 구체적으로 단점을 알아보자면
1. 실수의 자리수를 조절할 수 없습니다.그냥 실수 그대로 출력 된다는 말 입니다. 원하는 소수점 자리까지 출력되는것을 원할때 println을 사용하면 원하는 소수점 자리까지 출력 할 수 없습니다.
2. 10진수로만 출력된다는 것 입니다.

이 문제를 해결할수 있는 것이 printf() 입니다.

System.out.printf("%.(숫자)f", 17.0/3); // 소수점 (숫자) 자리까지 출력 합니다. 
System.out.printf("%d", ()); //  10진수로 출력 
System.out.printf("%x", ()); // 16진수로 출력 

위의 코드처럼 printf() 를 사용하면 사용자가 출력 형태를 제어할 수 있습니다.

printf()의 지시자

  • %b : boolean 형식으로 출력
  • %d : 10진수 정수의 형식으로 출력
  • %o : 8진수 정수의 형식으로 출력 (지시자 앞에 #을 붙이면 접두사 붙어서 출력)
  • %x : 16진수 정수의 형식으로 출력 (지시자 앞에 #을 붙이면 접두사 붙어서 출력)
  • %f : 부동 소수점의 형식으로 출력 (기본적으로는 6자리까지 출력)
  • %e : 지수 표현식의 형식으로 출력
  • %c : 문자 형식으로 출력
  • %s : 문장열 형식으로 출력

printf()에서 출력 형태 제어하기

%전체자리.소수점아래자리까지(지시자)

전체자리 : 출력되는 길이를 생성
소수점아래자리까지 : 말 그대로 입력한 숫자 소수점까지 출력 (뒤에 값이 남아있고 반올림 가능하다면 반올림 되서 출력)
전체자리 왼쪽에 아무것도 적지 않으면 출력 값이 오른쪽 정렬하고
"-" 를 적으면 왼쪽 정렬하고
0을 적으면 전체자리에 의해서 생긴 출력되는 길이에서 실제 출력되는 값 빼고 공백이 있다면 0으로 채워져서 출력된다.

System.out.printf("[%10d]", 10); // [        10] 출력 
System.out.printf("[%-10d]", 10); // [10        ] 출력
System.out.printf("[%010d]", 10); // [0000000010] 출력 

위와 같이 출력 된니다.
만약 10이 아니고 값이 전체자리로 지정한 값의 길이보다 큰 값이라면 전체자리의 값 길이와 상관없이 출력 됩니다.

0개의 댓글