안녕하세요. 길벗 수험서 운영팀입니다.
float a = 123456789.0e-5f;
%f, %e와 같이 소수점 자리수가 없는 경우에는 기본적으로 소수점 자리수는 6자리까지 지수부는 2자리가 표시됩니다.
그러므로 %f로 출력하면 1234.567890으로 표시되어야 하는데, 지수를 실수로 표현할 때 부족한 자리수 변환 시 정규화 과정의 오차로 인해 예상과 다른 값이 표시됩니다.
이로 인해 예상과 다른 결과가 표시되도록 자리수가 부족한 표현은 시험에 출제되지 않을 것으로 예상됩니다. 그러니 적용 원리에 맞는 형태만 파악해 두세요.
%e로 출력하면
e는 정수 부분을 1자리만 출력하므로 1.234567890 이 됩니다.
여기서 소수점 자리수를 6자리로 맞추기 위해 7째 자리에서 반올림 되어 1.234568이 됩니다. 또 위에서 지수부는 2자리로 표시한다고 하였으므로 지수부 +3을 +03으로 표현하여 1.234568e+03으로 출력이 되는 것입니다.
행복한 하루되세요.^^
-
관리자2019-08-30 10:12:10
안녕하세요. 길벗 수험서 운영팀입니다.
float a = 123456789.0e-5f;
%f, %e와 같이 소수점 자리수가 없는 경우에는 기본적으로 소수점 자리수는 6자리까지 지수부는 2자리가 표시됩니다.
그러므로 %f로 출력하면 1234.567890으로 표시되어야 하는데, 지수를 실수로 표현할 때 부족한 자리수 변환 시 정규화 과정의 오차로 인해 예상과 다른 값이 표시됩니다.
이로 인해 예상과 다른 결과가 표시되도록 자리수가 부족한 표현은 시험에 출제되지 않을 것으로 예상됩니다. 그러니 적용 원리에 맞는 형태만 파악해 두세요.
%e로 출력하면
e는 정수 부분을 1자리만 출력하므로 1.234567890 이 됩니다.
여기서 소수점 자리수를 6자리로 맞추기 위해 7째 자리에서 반올림 되어 1.234568이 됩니다. 또 위에서 지수부는 2자리로 표시한다고 하였으므로 지수부 +3을 +03으로 표현하여 1.234568e+03으로 출력이 되는 것입니다.
행복한 하루되세요.^^