책 내용 질문하기
알고리즘 115쪽
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
115
조회수
187
작성일
2019-04-11
작성자
탈퇴*원
첨부파일
실수답이 왜 1234.567871 인지 해설 부탁드립니다
답변
2019-04-12 09:38:03

안녕하세요.

 

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으로 출력이 되는 것입니다. 

 

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

  • 관리자
    2019-04-12 09:38:03

    안녕하세요.

     

    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으로 출력이 되는 것입니다. 

     

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

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