책 내용 질문하기
기출따라잡기 문제 5번 질문합니다.
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
63
조회수
368
작성일
2019-08-02
작성자
탈퇴*원
첨부파일

63페이지 기출 따라잡기 문제 5번 관련해서 질문 드립니다.

 

float a = 123456789.0e-5f;

 

답이

소수점a = 1234.6   지수형a = 1.234568e+03

 

이라고 나오는데 

인터넷 검색을 통해서 %6.1f의 뜻이 소수점 포함해서 전체 6자리, 소수점 이하 1자리 표시 라는 것은 이해했는데

답이 1234.5가 아니라 1234.6인 이유는 소수점 이하 자리수를 표시할 시 반올림을 해서 표시하는 게 규칙이라 그런 건가요?

 

또 지수형의 표시 형식이 잘 이해가 가지 않는데 

123456789.0e-5f 라는 값을 어떻게 만들면 1.234568e+03 라는 형태로 표시하는 건지 책만 봐서는 이해가 되지 않습니다.

 

머리가 터질 거 같아요 도와주세요.

답변
2019-08-05 10:41:50

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

 

예, %6.1f에서 1234.6이 나오는 이유는 이해하고 계신대로 반올림으로 인한 결과입니다.

 

음.. 지수형태의 수치를 정확히 이해하지 못하셔서 혼동되시는 것 같습니다.

 

지수 표현은 아래에서 * 또는 /가 생략된 형태로 표기됩니다.

(실수)e(* or /)(10의 승수)

 

123.45 를 진수부가 한자리인 수로 표현하기 위해서는 나누기 100을 하면 되니 아래와 같이 표현할 수 있습니다. (진수부 : 실수에서 소수점(.) 왼쪽부분, 즉 정수부분을 말합니다.)

1.2345*102

​이것을 지수표현으로 바꾸게 되면,

1.2345e+2 가 되죠.

 

0.00123을 진수부 한자리인 수로 표현하기 위해서는 곱하기 1000을 하면 되니 아래와 같이 표현이 가능합니다.

1.23/10-3

이것을 지수표현으로 바꾸게 되면,

1.23e-3 이 되죠.

 

 

해당 문제는 위와 같은 방식으로 풀어보시면 됩니다.

123456789.0e-5는 풀어보면 아래와 같은 수가 됩니다.

123456789.0/105 = 1234.56789

이것을 지수부 한 개만 남겨두면

1.23456789*103

지수로 고쳐쓰면

1.23456789e+3

 

여기서 문제는 C에서 별다른 서식지정자를 쓰지 않으면 실수는 소수점 7번째 자리에서 반올림된 6자리만 출력된다는 것입니다. 이것은 지수표현 또한 마찬가지 입니다. 소수점 7번째 자리인 8에서 반올림 하면 6번째 자리인 7이 1 증가하여 8이 됩니다. 수로 표현하게 되면

1.234568e+3이 되는 것이죠.

 

요렇게 정답이 나옵니다.

 

행복한 하루되세요 :)

  • 관리자
    2019-08-05 10:41:50

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

     

    예, %6.1f에서 1234.6이 나오는 이유는 이해하고 계신대로 반올림으로 인한 결과입니다.

     

    음.. 지수형태의 수치를 정확히 이해하지 못하셔서 혼동되시는 것 같습니다.

     

    지수 표현은 아래에서 * 또는 /가 생략된 형태로 표기됩니다.

    (실수)e(* or /)(10의 승수)

     

    123.45 를 진수부가 한자리인 수로 표현하기 위해서는 나누기 100을 하면 되니 아래와 같이 표현할 수 있습니다. (진수부 : 실수에서 소수점(.) 왼쪽부분, 즉 정수부분을 말합니다.)

    1.2345*102

    ​이것을 지수표현으로 바꾸게 되면,

    1.2345e+2 가 되죠.

     

    0.00123을 진수부 한자리인 수로 표현하기 위해서는 곱하기 1000을 하면 되니 아래와 같이 표현이 가능합니다.

    1.23/10-3

    이것을 지수표현으로 바꾸게 되면,

    1.23e-3 이 되죠.

     

     

    해당 문제는 위와 같은 방식으로 풀어보시면 됩니다.

    123456789.0e-5는 풀어보면 아래와 같은 수가 됩니다.

    123456789.0/105 = 1234.56789

    이것을 지수부 한 개만 남겨두면

    1.23456789*103

    지수로 고쳐쓰면

    1.23456789e+3

     

    여기서 문제는 C에서 별다른 서식지정자를 쓰지 않으면 실수는 소수점 7번째 자리에서 반올림된 6자리만 출력된다는 것입니다. 이것은 지수표현 또한 마찬가지 입니다. 소수점 7번째 자리인 8에서 반올림 하면 6번째 자리인 7이 1 증가하여 8이 됩니다. 수로 표현하게 되면

    1.234568e+3이 되는 것이죠.

     

    요렇게 정답이 나옵니다.

     

    행복한 하루되세요 :)

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