책 내용 질문하기
p104 문제8번 질문있습니다.
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
104
조회수
488
작성일
2017-03-13
작성자
탈퇴*원
첨부파일

float a = 123456789.0e-5f;
이에 결과값이 왜 1234.567871인지 궁금합니다.
게시판에 올라와있는 답변을 다 읽어봐도 이해가 되지 않습니다.

서식 문자열에 자릿수가 지정되지 않은 경우 소수 이하는 6자리만 표시되고 반올림한다는건 이해가 됩니다.
그런데 1234.56789가 어느자리에서 반올림이 되는지, 9가 반올림해서 어떻게 7이 되는지, 뒤에 1은 왜 붙는지는 이해가 안됩니다. 답변 해 주세요.

답변 중에 '서식 문자열에 자릿수를 지정하지 않으면 소수 이하는 6자리까지 표시됩니다.
지수 표현 값에서 생략된 소수이하 부분이 더 표시된 것입니다.' 라는 답변도 있었는데 지수 표현값에서 생략된 소수 이하부분이 무엇인가요?? 답변 해 주세요.

답변
2017-03-14 09:45:41

안녕하세요.

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

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

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

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

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

  • *
    2017-03-14 09:45:41

    안녕하세요.

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

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

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

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

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

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