11.형식지정자 옵션
형식 지정자 옵션
- 고정길이 출력하기
%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도 똑같다
댓글남기기