float a 는 123456789.0e-5f 로 주어져 있는데
출력이 %f 에서 1234.567871로 나오는 이유가 있나요?
프로그래밍을 해도 저렇게 나오는데 원래대로라면 1234.567890으로 출력이 되야하는게 아닌지..
그리구 %e 에서 10의 3승이 e+03으로 되어있는데
프로그래밍도 마찬가지로 저렇게 나오긴 하는데
시험때 e+3으로 표기하면 틀리는건가요?
안녕하세요.
%f, %e와 같이 소수점 자리수가 없는 경우에는 기본적으로 소수점 자리수가 6자리가 표시됩니다.
그러므로
1234.567890으로 표시되어야 하는데, 지수를 실수로 표현할 때 부족한 자리수 변환 시 정규화 과정의 오차로 인해 예상과 다른 값이 표시됩니다. 이로 인해 예상과 다른 결과가 표시되도록 자리수가 부족한 표현은 시험에 출제되지 않을 것으로 예상됩니다.
그러니 적용 원리에 맞는 형태만 파악해 두세요.
또한
지수 표현 형태는 이번 회차가 변경 후 처음 시행되는 것이고 채점 기준에 대한 시행처의 언급이 없으므로 정확한 답변을 드리기는 어렵습니다. 그러므로 실제 출력 형태에 맞게 +03으로 작성하는 것이 향후 발생할 수 있는 문제를 최소화 할 수 있을 것 같습니다.
오늘도 즐거운 하루 되세요.
-
*2017-03-29 10:48:18
안녕하세요.
%f, %e와 같이 소수점 자리수가 없는 경우에는 기본적으로 소수점 자리수가 6자리가 표시됩니다.
그러므로
1234.567890으로 표시되어야 하는데, 지수를 실수로 표현할 때 부족한 자리수 변환 시 정규화 과정의 오차로 인해 예상과 다른 값이 표시됩니다. 이로 인해 예상과 다른 결과가 표시되도록 자리수가 부족한 표현은 시험에 출제되지 않을 것으로 예상됩니다.
그러니 적용 원리에 맞는 형태만 파악해 두세요.
또한
지수 표현 형태는 이번 회차가 변경 후 처음 시행되는 것이고 채점 기준에 대한 시행처의 언급이 없으므로 정확한 답변을 드리기는 어렵습니다. 그러므로 실제 출력 형태에 맞게 +03으로 작성하는 것이 향후 발생할 수 있는 문제를 최소화 할 수 있을 것 같습니다.
오늘도 즐거운 하루 되세요.