최대 1 분 소요

형식 지정자 옵션

  • 고정길이 출력하기

%5.2f : 5는 전체의 길이이고 2는 소수 둘쨰짜리까지 (점까지 포함)

 

	    System.out.printf("\t국어1 : %3d\n", kor1);
		System.out.printf("\t국어2: %3d\n", kor2);
		System.out.printf("\t국어3: %3d\n", kor3);
		System.out.printf("\t총점 :%3d\n", total);
		System.out.printf("\t평균:%6.2f\n", avg);

    국어1 :  50
	국어2:  60
	국어3:  80
	총점 :190
	평균: 63.00// 전체 6자리의 함수중에서 소수점 2자리까지만 출력해주세요


 

  • 인덱스로 순서 바꿔서 출력하기
	System.out.printf("%2$d %1$d %3$d\n", 1, 2, 3);
2 1 3 //순서를 바꿔서 출력도 가능하다

똑같은 값을 세번 나오게 할 수도 있다

	System.out.printf("%1$d %1$d %1$d\n", 1);
1 1 1

 

  • 정수를 정수로 나눌경우

정수와 정수를 나눌 경우 정수가 출력이 된다 실수를 출력하고 싶으면 최소 .0을 써야한다 (타입이 다른 연산은 안된다-묵시적 형변환은 가능)

	avg = total / 3;
	평균: 63.00
  • .0은 double이 된다 (묵시적 형변환이 된다)
float avg;

avg = total / 3.0;

 

연산 결과가 double형이 되나 에러가 발생한다

avg라는 4바이트 float 작은 공간에 double가 들어갈 수 없기때문이다

 

따라서 아래와 같이 바꾼다

avg = (float)total/3.0; 

 

(float) total은 float이지만 3.0은 더블이므로 에러 발생

우선순위를 높여준다  

 avg = (float)(total / 3.0);//정수를 더블형으로 바꿔준다
 //avg=total/3.0f도 똑같다

카테고리:

업데이트:

댓글남기기