안녕하세요 길벗수험서 운영팀입니다.
[1]
float a = 123456789.0e-5f;
%f, %e와 같이 소수점 자리수가 없는 경우에는 기본적으로 소수점 자리수는 6자리까지 지수부는 2자리가 표시됩니다.
그러므로 %f로 출력하면 1234.567890으로 표시되어야 하는데, 지수를 실수로 표현할 때 부족한 자리수 변환 시 정규화 과정의 오차로 인해 예상과 다른 값이 표시됩니다.
이로 인해 예상과 다른 결과가 표시되도록 자리수가 부족한 표현은 시험에 출제되지 않을 것으로 예상됩니다. 그러니 적용 원리에 맞는 형태만 파악해 두세요.
[2]
반올림의 결과입니다.
위에서 설명드렸듯이 소수점 자리수는 6자리까지 표현됩니다.
때문에 7번째 자리인 8에서 반올림된 수가 7에 더해져 1.234568이 표시되는 것입니다.
[3]
6.1f는 소수점 1자리를 포함한 6자리 수를 표시하라는 의미입니다.
때문에 1234.56789 에서 소수점(.)을 포함한 6자리인 1234.5가 표시되야 합니다.
잘린 자리는 위와 같이 반올림으로 인해 1234.6이 됩니다.
(소수 두번째 자리 6에서 반올림된 수가 앞의 5에 +1을 한 것)
행복한 하루되세요 :)
-
관리자2019-05-07 11:40:52
안녕하세요 길벗수험서 운영팀입니다.
[1]
float a = 123456789.0e-5f;
%f, %e와 같이 소수점 자리수가 없는 경우에는 기본적으로 소수점 자리수는 6자리까지 지수부는 2자리가 표시됩니다.
그러므로 %f로 출력하면 1234.567890으로 표시되어야 하는데, 지수를 실수로 표현할 때 부족한 자리수 변환 시 정규화 과정의 오차로 인해 예상과 다른 값이 표시됩니다.
이로 인해 예상과 다른 결과가 표시되도록 자리수가 부족한 표현은 시험에 출제되지 않을 것으로 예상됩니다. 그러니 적용 원리에 맞는 형태만 파악해 두세요.
[2]
반올림의 결과입니다.
위에서 설명드렸듯이 소수점 자리수는 6자리까지 표현됩니다.
때문에 7번째 자리인 8에서 반올림된 수가 7에 더해져 1.234568이 표시되는 것입니다.
[3]
6.1f는 소수점 1자리를 포함한 6자리 수를 표시하라는 의미입니다.
때문에 1234.56789 에서 소수점(.)을 포함한 6자리인 1234.5가 표시되야 합니다.
잘린 자리는 위와 같이 반올림으로 인해 1234.6이 됩니다.
(소수 두번째 자리 6에서 반올림된 수가 앞의 5에 +1을 한 것)
행복한 하루되세요 :)