작성
·
198
1
1. print('%06.2f' %(3.14151415))의 의미를 맞게 이해한건지 한번 확인하려고 합니다.
저는 이 명령문의 의미를
- 총 6자리를 출력한다
- 소수점(.)도 자리수에 포함된다
- 소수점 아래로 2자리를 출력한다
- 정수부, 소수점, 소수부를 출력하고도 남을 자리수는 정수부 앞에 0으로 채운다
=> 결과물은 : 003.14
이렇게 이해하면 맞을까요?
2. 등록한 이미지대로 작성해봤는데 출력물이 왜 저렇게 나오는지 잘 모르겠습니다.
- 72~75번줄대로 출력시 왜 소수점 아래에서 4가 건너뛰어지고 .1235로 출력이 되는건가요?
- 72~74번 줄은 어째서 6자리가 넘게 출력이 된것인가요? 정수부는 전체를 한자리로 보는 것인가요?
- 74번줄과 75번줄의 출력값이 어째서 동일하게 나온것인지, 특히 75번줄은 04로 자리수를 4개로 지정했음에도 불구하고 출력값이 저렇게 나왔습니다.
답변 2
2
안녕하세요.
1. 네 맞습니다. 잘 이해하셨습니다.
2. 각 질문에 대한 답변드리겠습니다.
- 72~75번줄대로 출력시 왜 소수점 아래에서 4가 건너뛰어지고 .1235로 출력이 되는건가요?
-> 소수점 뒷자리를 반올림해서 출력하기 때문에 .1235로 출력됩니다.
- 72~74번 줄은 어째서 6자리가 넘게 출력이 된것인가요? 정수부는 전체를 한자리로 보는 것인가요?
-> 소수점 포함한 정수부의 길이가 설정한 폭을 초과하기 때문입니다.
- 74번줄과 75번줄의 출력값이 어째서 동일하게 나온것인지, 특히 75번줄은 04로 자리수를 4개로 지정했음에도 불구하고 출력값이 저렇게 나왔습니다.
-> 위의 답변과 동일한 현상입니다.
감사합니다.
0
- 72~74번 줄은 어째서 6자리가 넘게 출력이 된것인가요? 정수부는 전체를 한자리로 보는 것인가요?
-> 소수점 포함한 정수부의 길이가 설정한 폭을 초과하기 때문입니다
ㄴ 이 답변에서 설정한 폭을 초과해서 그렇다고 하셨는데
print('{:06.6f}'.format(31234567.14554123)) 이렇게 하면 소수부는 6자리, 정수부는 31234567가 전부 출력되는데 설정한 폭을 초과하면 정수부는 전부 출력되는 건가요?