제가 비전공자이다 보니, 기본서에 있는 해설만으로는 이해가 좀 어려워서 상세 설명을 요청합니다.
#include <stdio . h>
main ()
{
float a = 123456789.0e - 5f ;
printf("소수점a = %6.1f 지수형a = %e\n", a, a); ..........①
}
질문) ①에서 6.1f 의미? -> 총 6자리 확보 중 소수점과 소수점이하 자리 1자리 출력을 의미하는건가요?
그렇다면 "소수점a = %6.1f 값은 123456789.0 -> 1234.5 가 아닌가요?
정답에는 소수점a= 1234.6으로 되어있습니다.
그리고, 지수형a가 1.234568e+03 된 이유는 123456789.0e - 5가 정규화되어 변환된건가요?
토막강의에서는 소수점 6자리에서 끊으라고 하셨는데, 그렇다면 1.234567e+03이 되어야 하는게 아닌가요?
답변부탁드립니다.
안녕하세요 길벗수험서 운영팀입니다.
6.1f의 의미는 맞으나, 소수점을 제한할 때 자동으로 반올림이 수행됩니다.
즉, 1234.56789에서 소수점 첫째 자리까지만 표시하기 위해 둘째 자리인 6에서 반올림되어, 1234.6이 출력되는 것이죠.
지수형 출력 또한 마찬가지 입니다. 기본 출력은 소수점 6째자리이지만, 이 또한 소수점이 6자리를 넘어가는 경우 7번째 자리에서 반올림되기 때문에 1.234568e+03이 출력된 것이죠.
행복한 하루되세요 :)
-
관리자2020-07-01 10:52:15
안녕하세요 길벗수험서 운영팀입니다.
6.1f의 의미는 맞으나, 소수점을 제한할 때 자동으로 반올림이 수행됩니다.
즉, 1234.56789에서 소수점 첫째 자리까지만 표시하기 위해 둘째 자리인 6에서 반올림되어, 1234.6이 출력되는 것이죠.
지수형 출력 또한 마찬가지 입니다. 기본 출력은 소수점 6째자리이지만, 이 또한 소수점이 6자리를 넘어가는 경우 7번째 자리에서 반올림되기 때문에 1.234568e+03이 출력된 것이죠.
행복한 하루되세요 :)