책 내용 질문하기
%e %f 관련 질문드립니다
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
110
조회수
37
작성일
2018-09-14
작성자
탈퇴*원
첨부파일

110쪽 문제 8번 질문입니다

제가 아는바로는 123456789.0e - 5f는 1234.56789이고

출력문대로 표시하면
1234.56789 1.23456789 + 03

아닌가요

답지에는 1234.567871 1.234568e + 03이라고 되어있던데 왜그런가요?

아무리 구글이랑 책 뒤져봐도 못찾겠어서..ㅠ
자세히 설명 부탁드립니다

답변
2018-09-17 11:33:58

안녕하세요. 길벗 수험서 운영팀입니다.

float a = 123456789.0e-5f;

%f, %e와 같이 소수점 자리수가 없는 경우에는 기본적으로 소수점 자리수가 6자리가 표시됩니다.

그러므로 %f로 출력하면 1234.567890으로 표시되어야 하는데, 지수를 실수로 표현할 때 부족한 자리수 변환 시 정규화 과정의 오차로 인해 예상과 다른 값이 표시됩니다.

이로 인해 예상과 다른 결과가 표시되도록 자리수가 부족한 표현은 시험에 출제되지 않을 것으로 예상됩니다. 그러니 적용 원리에 맞는 형태만 파악해 두세요.

%e로 출력하면

e는 정수 부분을 1자리만 출력하므로 1.234568 이 됩니다.

역시 소수점 마지막 6자리는 7째 자리에서 반올림 된 것이고 1.234568 은 원래의 값 1234.56789에서 소수점 위치가 왼쪽으로 3자리 이동했으므로 e+03이 되어 1.234568e+03으로 출력이 되는 것입니다.

행복한 하루되세요.^^

  • *
    2018-09-17 11:33:58

    안녕하세요. 길벗 수험서 운영팀입니다.

    float a = 123456789.0e-5f;

    %f, %e와 같이 소수점 자리수가 없는 경우에는 기본적으로 소수점 자리수가 6자리가 표시됩니다.

    그러므로 %f로 출력하면 1234.567890으로 표시되어야 하는데, 지수를 실수로 표현할 때 부족한 자리수 변환 시 정규화 과정의 오차로 인해 예상과 다른 값이 표시됩니다.

    이로 인해 예상과 다른 결과가 표시되도록 자리수가 부족한 표현은 시험에 출제되지 않을 것으로 예상됩니다. 그러니 적용 원리에 맞는 형태만 파악해 두세요.

    %e로 출력하면

    e는 정수 부분을 1자리만 출력하므로 1.234568 이 됩니다.

    역시 소수점 마지막 6자리는 7째 자리에서 반올림 된 것이고 1.234568 은 원래의 값 1234.56789에서 소수점 위치가 왼쪽으로 3자리 이동했으므로 e+03이 되어 1.234568e+03으로 출력이 되는 것입니다.

    행복한 하루되세요.^^

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.