안녕하세요~ 예상문제은행을 풀다가 질문사항이 생겨 이렇게 글을 남기게 되었습니다.
전공도 아니고 혼자 토막강의만 듣고 공부하고있는데 질문도 이렇게 할수있다니 정말 좋네용ㅎㅎㅎ
문제8번에서 &f a 를 쓰는 첫번째 답이 이해가 되지 않습니다.
제가 적은 답은 1234.567890 인데 정답지에는 1234.567871 이라고 되어있네요...
소숫점 이하자리는 지정하지 않으면 6자리를 쓰고
실수형 변서 a 값을 출력하는 것은 그대로 문제에 나와있는 float a의 값을 소숫점을 포함한 숫자로 변경해서 적는 것이 아닌가용??
감사합니다~
안녕하세요.
float a = 123456789.0e-5f;
%f, %e와 같이 소수점 자리수가 없는 경우에는 기본적으로 소수점 자리수가 6자리가 표시됩니다.
그러므로
%f로 출력하면
1234.567890으로 표시되어야 하는데, 지수를 실수로 표현할 때 부족한 자리수 변환 시 정규화 과정의 오차로 인해 예상과 다른
값이 표시됩니다. 이로 인해 예상과 다른 결과가 표시되도록 자리수가 부족한 표현은 시험에 출제되지 않을 것으로 예상됩니다.
그러니 적용 원리에 맞는 형태만 파악해 두세요.
%e로 출력하면
소수점 자리수가 지정되지 않으면 f나 e는 모두 기본적으로 소수점 6자리로 출력합니다.
e는 정수 부분을 1자리만 출력하므로
1.234568 이 됩니다. 역시 소수점 마지막 6자리는 7째 자리에서 반올림 된 것이고
1.234568 은 원래의 값 1234.56789에서 소수점 위치가 왼쪽으로 3자리 이동했으므로 e+03이 되어
1.234568e+03으로 출력이 되는 것입니다.
오늘도 즐거운 하루 되세요.
-
*2018-04-06 09:08:08
안녕하세요.
float a = 123456789.0e-5f;
%f, %e와 같이 소수점 자리수가 없는 경우에는 기본적으로 소수점 자리수가 6자리가 표시됩니다.
그러므로
%f로 출력하면
1234.567890으로 표시되어야 하는데, 지수를 실수로 표현할 때 부족한 자리수 변환 시 정규화 과정의 오차로 인해 예상과 다른
값이 표시됩니다. 이로 인해 예상과 다른 결과가 표시되도록 자리수가 부족한 표현은 시험에 출제되지 않을 것으로 예상됩니다.
그러니 적용 원리에 맞는 형태만 파악해 두세요.
%e로 출력하면
소수점 자리수가 지정되지 않으면 f나 e는 모두 기본적으로 소수점 6자리로 출력합니다.
e는 정수 부분을 1자리만 출력하므로
1.234568 이 됩니다. 역시 소수점 마지막 6자리는 7째 자리에서 반올림 된 것이고
1.234568 은 원래의 값 1234.56789에서 소수점 위치가 왼쪽으로 3자리 이동했으므로 e+03이 되어
1.234568e+03으로 출력이 되는 것입니다.
오늘도 즐거운 하루 되세요.