책 내용 질문하기
63페이지 문제 5번 정답 해설이 부족한 것 같아 질문드립니다.
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
63
조회수
2795
작성일
2019-03-07
작성자
탈퇴*원
첨부파일

소수형a는 이해가 되는데

지수형a의 정답이

"1.234568e+03"

이라고 나와있는데,

 

저는

1.23456789e+03

이라고 생각했습니다.

 

왜 소수 일곱번째 자리에서 반올림 처리하여 결과값이 나온 것인지 궁금합니다.

 

감사합니다.

답변
2019-03-08 11:24:29

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

 

C언어에서 소수점 출력은 6자를 기본으로 합니다.

%f 로 1.1을 찍게 되면 1.100000이 출력되는 것과 같이 말이죠.

 

만약 0.1234567과 같이 6자리를 초과하는 소수점이 있다면 출력시 소수점 7의 자리에서 반올림되어 6자리로 출력됩니다.

0.123457과 같이 말이죠.

 

지수형도 소수점 출력방식은 동일합니다. 6자 출력이며, 초과시 7자에서 반올림이죠.

이를 적용하게 되면, 1.23456789는 7번째 자리인 8을 반올림하여 1.234568이 됩니다.

 

행복한 하루되세요 :)

  • 관리자
    2019-03-08 11:24:29

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

     

    C언어에서 소수점 출력은 6자를 기본으로 합니다.

    %f 로 1.1을 찍게 되면 1.100000이 출력되는 것과 같이 말이죠.

     

    만약 0.1234567과 같이 6자리를 초과하는 소수점이 있다면 출력시 소수점 7의 자리에서 반올림되어 6자리로 출력됩니다.

    0.123457과 같이 말이죠.

     

    지수형도 소수점 출력방식은 동일합니다. 6자 출력이며, 초과시 7자에서 반올림이죠.

    이를 적용하게 되면, 1.23456789는 7번째 자리인 8을 반올림하여 1.234568이 됩니다.

     

    행복한 하루되세요 :)

  • 관리자
    2019-03-25 10:52:22

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

     

    예, 본래는 예측하신 값이 나와야 정상입니다.

     

    다만 PC 계산 방식상 지수를 실수로 표현할 때 부족한 자리수 변환 시 정규화 과정의 오차로 인해 예상과 다른 값이 표시됩니다.

     

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

     

    행복한 하루되세요 :)

  • *
    2019-03-22 16:10:52

    안녕하세요?

    저번에 답변을 친절하게 주셔서 궁금증이 해소되었습니다.

     

    이번에 또 하나의 질문이 생겼는데, 비슷한 내용이라 추가문의로 질문드립니다.

     

    페이지 115쪽에

     

    public class Problem{

    public static void main(String[] args){

    float a = 123456789.0e - 5f;

    System.out.printf("%f %e \n", a, a);

    }

    }

     

    위와 같은 소스인데

     

    정답지에 실행 결과가

    1234.567871  1.234568e+03

    으로 나옵니다.

     

    저는 첫번째 출력 %f에서 1234.56789 라고 생각했습니다.

    왜 정답이 1234.567871인지가 궁금합니다! 

     

     

     

     

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