plan11plan   2년 전

23번쨋줄 보면

System.out.printf("%.3f%%\n", per); 이렇게 되어있습니다.

제가 println을 쓰려고 했는데 오류가 떠요. 그래서 print를 쓰려고 했는데 오류가 떠요

printf ? 해봤는데 이건 되요. 왜 저건 안되고 이건 될까요..?


하나 더 궁금한게 있어요

결과적으로는 출력창에 ~% (ex 66.666%)라고 출력이 되어야하는데요

" %.3f% 까지는 이해가 됬는데(출력창에 %가 나와야하니까) %%는 왜들어간지 모르겠어요.

djm03178   2년 전

printf에서 f는 formatted(서식 문자)를 의미합니다. %.3f니 이런 것들이 바로 서식 문자이고, 이걸 받아들일 수 있도록 만들었다는 뜻으로 f를 붙인 것입니다.

printf에서 %는 서식 문자를 위해 쓰이기 때문에 단독으로는 %를 출력할 수 없습니다. 그래서 printf에서 %를 출력하기 위한 방법으로 %를 2개 쓰는 방법을 대신 제공하는 것입니다.

bupjae   2년 전

"오류가 떠요" 를 "컴파일 에러가 발생" 이라고 생각하고 답변하겠습니다.

   

System.out 는 java.io.PrintStream 객체입니다.

print() 및 println() 은 인자를 하나만 받습니다.

이 두 함수는 x.toString() 또는 String.valueOf(x) 의 결과로 받은 문자열을 그대로 출력 스트림에 전달합니다. println() 은 추가로 줄바꿈 문자도 전달합니다.

반면, printf() 는 인자를 여러개 받을 수 있으며, 그 중 첫 번째 인자는 "형식 문자열"이라고 부르는 것으로, 뒤에 나올 인자들이 어떠한 모습으로 출력해야 하는지 결정하는 인자입니다.

   

형식 문자열 중 % 는 일반적으로는 다른 문자열로 대체되어야 할 자리를 뜻합니다.

% 글자를 다른 문자열로 대체하지 않고 그대로 출력하고 싶으면 형식 문자열에 "%%" 라고 써줘야 합니다.

댓글을 작성하려면 로그인해야 합니다.