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 라는 형태로 표시하는 건지 책만 봐서는 이해가 되지 않습니다.
머리가 터질 거 같아요 도와주세요.
안녕하세요 길벗수험서 운영팀입니다.
예, %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이 되는 것이죠.
요렇게 정답이 나옵니다.
행복한 하루되세요 :)