책 내용 질문하기
문제 8번 문의입니다
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
104
조회수
63
작성일
2017-03-17
작성자
첨부파일
float a를 하면 1.2345678e+3 으로 저장되는걸로 알고있습니다 이때 %f를 하면 저장된 값에서 지수를 취한 1234.568이 되는걸로 생각했는데 아니더라구요. 이유가 궁금합니다 그리고 답지를 보면 e+03 이라고 적혀있는데 e+3이라고 하면 틀리는 건가요? 정해진 자릿수? 공간? 을 채우기 위해 03을 해야하나 의문이 듭니다
답변
2017-03-20 13:52:56

안녕하세요.

실수형의 경우 숫자를 저장할 때 지수부와 가수부를 분리하여 저장하는데, 이를 다시 출력할 때 유효 자리수에 맞게 출력합니다.

이로 인해 C나 Java는 소수점 자리수를 지정하지 않은 경우 기본적으로 6자리를 표현하기 위해 지수부와 가수부로 나눠 저장된 내용을 다시 자리수에 맞추어 출력하면서 일부 오차가 발생하는데, 이 경우가 그런 경우라고 할 수 있습니다.

C언어 처리 과정에 따른 오차이므로 세부적인 내용을 언급할 수는 없지만 이 문제의 경우 소수점 자리수에 맞게 값이 어떻게 출력되는지 확인하는 정도로만 이해하시면 될 것 같습니다.

저장된 값 보다 더 많은 유효 자리수를 표시하는 경우는 오차가 발생할 수 있으므로 문제로 출제될 가능성이 낮습니다.

또한 지수 표시 형식 e+03은 출력되는 표시형식에 따라 자동으로 표시되는 것입니다. 지수 형식의 출력 결과를 직접 작성하도록 하는 문제가 출제되지 않을 것으로 생각되지만 혹 출제된다면 e+03과 같이 자동으로 표시되는 출력형식에 맞게 작성하세요.

오늘도 즐거운 하루 되세요.

  • *
    2017-03-20 13:52:56

    안녕하세요.

    실수형의 경우 숫자를 저장할 때 지수부와 가수부를 분리하여 저장하는데, 이를 다시 출력할 때 유효 자리수에 맞게 출력합니다.

    이로 인해 C나 Java는 소수점 자리수를 지정하지 않은 경우 기본적으로 6자리를 표현하기 위해 지수부와 가수부로 나눠 저장된 내용을 다시 자리수에 맞추어 출력하면서 일부 오차가 발생하는데, 이 경우가 그런 경우라고 할 수 있습니다.

    C언어 처리 과정에 따른 오차이므로 세부적인 내용을 언급할 수는 없지만 이 문제의 경우 소수점 자리수에 맞게 값이 어떻게 출력되는지 확인하는 정도로만 이해하시면 될 것 같습니다.

    저장된 값 보다 더 많은 유효 자리수를 표시하는 경우는 오차가 발생할 수 있으므로 문제로 출제될 가능성이 낮습니다.

    또한 지수 표시 형식 e+03은 출력되는 표시형식에 따라 자동으로 표시되는 것입니다. 지수 형식의 출력 결과를 직접 작성하도록 하는 문제가 출제되지 않을 것으로 생각되지만 혹 출제된다면 e+03과 같이 자동으로 표시되는 출력형식에 맞게 작성하세요.

    오늘도 즐거운 하루 되세요.

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