책 내용 질문하기
1권 110쪽 문제8
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
110
조회수
210
작성일
2019-09-25
작성자
이*희
첨부파일

질문1

123456789.0e-5f와

123456789.0e+5f의 차이점이 뭔가요?

 

질문2

123456789.0e-5f를 %f로 표시하는데

소수 이하를 지정하지 않았기 때문에

소수점 뒤에 6자리가 표시되나요?

1234.567891으로 마지막이 1이 되는 이유는 반올림이 되는건가요?

 

질문3

123456789.0e-5f를 %e로 표시하는데

역시 소수 이하를 지정하지 않았기 때문에

소수점 뒤에 6자리가 표시되나요?

1.234568 뒤에 e+03은 무엇인가요? 

답변
2019-09-25 16:07:27

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

 

[1]

지수 개념을 확실히 알아두세요.

123456789.0e-5f 는 실수로 표현하면 1234.56789 가 되고,

123456789.0e+5f는 12345678900000가 됩니다. 

 

[2]

컴퓨터가 지수를 실수로 표현하는 처리 알고리즘에서 발생되는 오류로 인해 1234.567871가 출력되는 것입니다.

이는 무시하셔도 되는 내용이며, 실제로 출력되어야 하는 결과는 1234.567890 입니다.

 

[3]

지수 개념을 간단히 설명드리겠습니다.

지수 표현은 일반 실수에서 * 또는 /가,  + 또는 -로 변형된 형태로 표기됩니다.

(실수)e(* > + 또는 / > -)(10의 승수)

 

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

1.2345*10^2

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

1.2345e+2 가 되죠.

(10^2 는 10의 2승을 의미합니다. 10x10으로 100이죠. 3승이면 10x10x10=1000)

(문자 'e'는 해당 수가 '지수'라는 것을 의미합니다.)

 

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

1.23/10^3

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

1.23e-3 이 되죠.

 

 

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

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

123456789.0/10^5 = 1234.56789

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

1.23456789*10^3

지수로 고쳐쓰면

1.23456789e+3

 

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

1.234568e+3이 되는 것이죠.

 

요렇게 정답이 나옵니다.

 

행복한 하루되세요 :)

  • 관리자
    2019-09-25 16:07:27

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

     

    [1]

    지수 개념을 확실히 알아두세요.

    123456789.0e-5f 는 실수로 표현하면 1234.56789 가 되고,

    123456789.0e+5f는 12345678900000가 됩니다. 

     

    [2]

    컴퓨터가 지수를 실수로 표현하는 처리 알고리즘에서 발생되는 오류로 인해 1234.567871가 출력되는 것입니다.

    이는 무시하셔도 되는 내용이며, 실제로 출력되어야 하는 결과는 1234.567890 입니다.

     

    [3]

    지수 개념을 간단히 설명드리겠습니다.

    지수 표현은 일반 실수에서 * 또는 /가,  + 또는 -로 변형된 형태로 표기됩니다.

    (실수)e(* > + 또는 / > -)(10의 승수)

     

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

    1.2345*10^2

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

    1.2345e+2 가 되죠.

    (10^2 는 10의 2승을 의미합니다. 10x10으로 100이죠. 3승이면 10x10x10=1000)

    (문자 'e'는 해당 수가 '지수'라는 것을 의미합니다.)

     

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

    1.23/10^3

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

    1.23e-3 이 되죠.

     

     

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

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

    123456789.0/10^5 = 1234.56789

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

    1.23456789*10^3

    지수로 고쳐쓰면

    1.23456789e+3

     

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

    1.234568e+3이 되는 것이죠.

     

    요렇게 정답이 나옵니다.

     

    행복한 하루되세요 :)

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