책 내용 질문하기
기본서 1권 63P 문제5 풀이과정 상세 설명 요청
도서
2020 시나공 정보처리산업기사 실기 [기본서]
페이지
63
조회수
222
작성일
2020-06-30
작성자
탈퇴*원
첨부파일

제가 비전공자이다 보니, 기본서에 있는 해설만으로는 이해가 좀 어려워서 상세 설명을 요청합니다.

 

#include <stdio . h>

main ()

{

   float a = 123456789.0e - 5f ;                                 

   printf("소수점a = %6.1f 지수형a = %e\n", a, a);     ..........①

}

 

 

 

질문) ①에서 6.1f 의미? -> 총 6자리 확보 중 소수점과 소수점이하 자리 1자리 출력을 의미하는건가요?

         그렇다면 "소수점a = %6.1f 값은 123456789.0 -> 1234.5 가 아닌가요?

         정답에는 소수점a= 1234.6으로 되어있습니다.

 

         그리고, 지수형a가 1.234568e+03 된 이유는 123456789.0e - 5가 정규화되어 변환된건가요?

         토막강의에서는 소수점 6자리에서 끊으라고 하셨는데, 그렇다면 1.234567e+03이 되어야 하는게 아닌가요?

 

 

답변부탁드립니다. 

답변
2020-07-01 10:52:15

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

 

6.1f의 의미는 맞으나, 소수점을 제한할 때 자동으로 반올림이 수행됩니다.

즉, 1234.56789에서 소수점 첫째 자리까지만 표시하기 위해 둘째 자리인 6에서 반올림되어, 1234.6이 출력되는 것이죠.

 

지수형 출력 또한 마찬가지 입니다. 기본 출력은 소수점 6째자리이지만, 이 또한 소수점이 6자리를 넘어가는 경우 7번째 자리에서 반올림되기 때문에 1.234568e+03이 출력된 것이죠.

 

행복한 하루되세요 :)

  • 관리자
    2020-07-01 10:52:15

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

     

    6.1f의 의미는 맞으나, 소수점을 제한할 때 자동으로 반올림이 수행됩니다.

    즉, 1234.56789에서 소수점 첫째 자리까지만 표시하기 위해 둘째 자리인 6에서 반올림되어, 1234.6이 출력되는 것이죠.

     

    지수형 출력 또한 마찬가지 입니다. 기본 출력은 소수점 6째자리이지만, 이 또한 소수점이 6자리를 넘어가는 경우 7번째 자리에서 반올림되기 때문에 1.234568e+03이 출력된 것이죠.

     

    행복한 하루되세요 :)

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