책 내용 질문하기
정보처리산업기사 1권 63쪽 5번 문제
도서
2021 시나공 정보처리산업기사 실기
페이지
1,63,5
조회수
418
작성일
2021-03-22
작성자
탈퇴*원
첨부파일
float a = 123456789.0e-5f;을 소수점a = %6.1f , 지수형a = %e에 어떻게 대입을 해야하는지 모르겠어요. 영상을 보고 해봐도 이해가 안되서 질문합니다.
답변
2021-03-23 10:04:56

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

 

음.. 드리는 답변이 영상보다 도움이 될 수 있을지 자신이 없네요ㅠ

 

먼저 지수 표현에 대해 아셔야 합니다.

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

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

 

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

123.45/100*100

= 1.2345*10^2

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

1.2345e+2 가 되죠.

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

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

 

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

0.00123*1000/1000

=1.23/10^3

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

1.23e-3 이 되죠.

 

이에 따라 float a = 123456789.0e-5f; 를 %f로 출력하면 1234.567890으로 표시되어야 하는데, 총 6칸에 소수점 자리를 한 개로 제한했으니 1234.5가 나오게 됩니다. 여기서 소수점 자리 제한 시 두 번째 자리에서 반올림이 수행되어 1234.6이 출력되게 됩니다.

 

%e는 지수 출력으로 컴퓨터에서 지수를 출력하면 정수 부분을 1자리, 소수 부분 6자리, 지수 부분 2자리로 출력합니다. 

이를 위해 변환하면 1.23456789*1000 => 1.23456789e+3이 되고, C, Java에서는 소수 관련 서식이 지정되지 않으면 소수점 6째 자리까지만 출력하기 때문에 7째 자리에서 반올림하여 1.234568e+3이 됩니다.

위에서 지수부는 2자리로 표시한다고 하였으므로 e+03으로 표현하여 1.234568e+03으로 출력이 되는 것입니다.

 

행복한 하루되세요 :)

  • 관리자
    2021-03-23 10:04:56

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

     

    음.. 드리는 답변이 영상보다 도움이 될 수 있을지 자신이 없네요ㅠ

     

    먼저 지수 표현에 대해 아셔야 합니다.

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

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

     

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

    123.45/100*100

    = 1.2345*10^2

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

    1.2345e+2 가 되죠.

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

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

     

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

    0.00123*1000/1000

    =1.23/10^3

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

    1.23e-3 이 되죠.

     

    이에 따라 float a = 123456789.0e-5f; 를 %f로 출력하면 1234.567890으로 표시되어야 하는데, 총 6칸에 소수점 자리를 한 개로 제한했으니 1234.5가 나오게 됩니다. 여기서 소수점 자리 제한 시 두 번째 자리에서 반올림이 수행되어 1234.6이 출력되게 됩니다.

     

    %e는 지수 출력으로 컴퓨터에서 지수를 출력하면 정수 부분을 1자리, 소수 부분 6자리, 지수 부분 2자리로 출력합니다. 

    이를 위해 변환하면 1.23456789*1000 => 1.23456789e+3이 되고, C, Java에서는 소수 관련 서식이 지정되지 않으면 소수점 6째 자리까지만 출력하기 때문에 7째 자리에서 반올림하여 1.234568e+3이 됩니다.

    위에서 지수부는 2자리로 표시한다고 하였으므로 e+03으로 표현하여 1.234568e+03으로 출력이 되는 것입니다.

     

    행복한 하루되세요 :)

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