작성
·
159
1
1. .을 기준으로 .뒤는 precision이라는 것은 알겠는데 %0.8f나 %0i같이 .앞의 0은 flag인지 width인지 어떻게 구별하나요?
2. width와 .precision은 각각 자리수를 지정, 정밀도 보장하는데 정수일 때 둘의 차이를 모르겠습니다. 예제를 보면 실수일 때는 둘의 기능이 명확히 구분이되는데 정수일 때는 둘 다 자리수를 지정하는 기능으로 보여 구분이 잘 안됩니다.
3. 앞강의에서 배웠던 %g를 사용했을때 백만자리가 넘어가면 자동으로 과학적 표기법 형태로 바뀌던데 원래 그런가요?
부동 소수점 수에 사용이 되고 값에 따라서 %e나 %f중 짧은 표현에 사용하고 지수가 –4보다 작거나 정밀도보다 크거나 같을 경우에는 %e 사용 이라고 말씀하신 교수님의 설명만으로는 이해가 잘 가지않아서 그렇습니다.
답변 1
1
1. 의 경우에는 0 을 넣어줬을 때 어떤 일이 발생하는지 생각을 해보면...
flag라면 width가 0이니 별다른 일이 발생하지 않고
width의 경우라면 어차피 0 이므로 역시 별다른 일이 발생하지 않습니다.
따라서 딱히 구분할 필요가 없어보이네요
2번의 경우 integer에 대해서는 width와 거의 똑같은데...
출력을 직접 해보시지 않은 모양이군요. precision의 경우는 결과가 0으로 padding 됩니다. (width는 blank spaces로 padding, flag에 0을 넣어주면 같아집니다.)
3의 경우는 100000 의 경우는 유효숫자(significant number)가 6, 1000000의 경우는 유효숫자가 7 이므로 1.~ 으로 바꿉니다. (defalut precision, 6)
7:30~ 쯤 등장하는 description부분을 읽어보시는 것도 도움이 될 것 같네요. 사실 이 부분에서 거의 해결되는 문제이긴 합니다.