책 내용 질문하기
문제 8번
도서
2021 시나공 정보처리산업기사 실기
페이지
115
조회수
239
작성일
2021-03-17
작성자
탈퇴*원
첨부파일

문제 8번을 보면 실수

float이 선언되고 13456789.0e-5f 라고 적혀있는데 도대체 실수 파트는 이해을 하기가 어렵습니다.. ㅠㅠ

출력문을 보녀 system.out.ptintf("%f %e/n" a, a);

결과를 알수 있게 개념한번만 설명해주시면 감사하겠습니다..

(궁금한 개념은 도대체 왜 단정도 실수 표시 방법과 .0e라는 문자가 포함해서 나오는지 및 출력시 다시 실수가 왜 정리가 되는지 알고싶습니다 ㅠㅠ) 

답변
2021-03-18 10:37:48

안녕하세요.

 

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

 

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

  • 관리자
    2021-03-18 10:37:48

    안녕하세요.

     

    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, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.