printf에서 f는 formatted(서식 문자)를 의미합니다. %.3f니 이런 것들이 바로 서식 문자이고, 이걸 받아들일 수 있도록 만들었다는 뜻으로 f를 붙인 것입니다.
printf에서 %는 서식 문자를 위해 쓰이기 때문에 단독으로는 %를 출력할 수 없습니다. 그래서 printf에서 %를 출력하기 위한 방법으로 %를 2개 쓰는 방법을 대신 제공하는 것입니다.
4344번 - 평균은 넘겠지
"오류가 떠요" 를 "컴파일 에러가 발생" 이라고 생각하고 답변하겠습니다.
System.out 는 java.io.PrintStream 객체입니다.
print() 및 println() 은 인자를 하나만 받습니다.
이 두 함수는 x.toString() 또는 String.valueOf(x) 의 결과로 받은 문자열을 그대로 출력 스트림에 전달합니다. println() 은 추가로 줄바꿈 문자도 전달합니다.
반면, printf() 는 인자를 여러개 받을 수 있으며, 그 중 첫 번째 인자는 "형식 문자열"이라고 부르는 것으로, 뒤에 나올 인자들이 어떠한 모습으로 출력해야 하는지 결정하는 인자입니다.
형식 문자열 중 % 는 일반적으로는 다른 문자열로 대체되어야 할 자리를 뜻합니다.
% 글자를 다른 문자열로 대체하지 않고 그대로 출력하고 싶으면 형식 문자열에 "%%" 라고 써줘야 합니다.
댓글을 작성하려면 로그인해야 합니다.
plan11plan 2년 전
23번쨋줄 보면
System.out.printf("%.3f%%\n", per); 이렇게 되어있습니다.
제가 println을 쓰려고 했는데 오류가 떠요. 그래서 print를 쓰려고 했는데 오류가 떠요
printf ? 해봤는데 이건 되요. 왜 저건 안되고 이건 될까요..?
하나 더 궁금한게 있어요
결과적으로는 출력창에 ~% (ex 66.666%)라고 출력이 되어야하는데요
" %.3f% 까지는 이해가 됬는데(출력창에 %가 나와야하니까) %%는 왜들어간지 모르겠어요.