8번 부동소수점 출력에서
123456789.0e-5f
를 %f 로 출력하면 어떻게 1234.567871 이 되나요.
소수점 마지막에서 첫째둘째자리가 71인게 이해가 안됩니다.
63p의 부동소수점 출력 문제도 이해가 안가는데요..
소수점의 변환과정이 어떻게 되는지 모르겠습니다.
안녕하세요.
6.1과 같이 앞의 6이 일반적으로 소수점을 포함한 전체 확보된 자릿수를 의미하는데 .. 이는 출력할 값보다 크기가 작은 경우입니다.
예를 들어 63쪽 5번과 같이
a = 123456789.0e-5f
지수형식은 가수부와 소수부를 나눠서 처리하는 것으로
실제 값은 소수점 위치가 지금보다 왼쪽으로 5칸 이동한
1234.56789입니다.
이 값에 %6.1을 적용하면 소수점을 포함한 6자리를 확보한 후 소수점 1자리를 출력하므로
1234.6이 됩니다.
%e와 같이 소수점을 지정하지 않으면 소수점 이하는 6자리로 자동 표시됩니다.
1234.56789에서 소수점 자리수를 6자리 표시하기 위해 현재 위치에서 소수점 위치를 왼쪽으로 3자리 이동합니다.
1.23456789e+03
소수점을 6자리만 표시하면 7자리에서 반올림하여 1.234568e+03이 됩니다. e+03은 소수점 위치를 원래 위치에서 3칸 이동했다는 의미입니다.
만일
1234.56789를
%.2f로 출력한다면 앞의 1은 전체 자리수로 지정할 수 없는 값입니다. 즉 표현할 자리수보다 서식 문자열에 지정한 자릿수가 작은 경우에는 정수부분은 모두 출력하고 소수점 부분만 지정된 자릿수에 맞게 출력됩니다.
그래서 1.2f로 지정하면 1234.58이 출력됩니다.
또한 표현할 자릿수보다 서식 문자열에 지정한 자릿수가 큰 경우 남은 자리는 공백으로 띄워져 표시됩니다.
마지막으로
지수형태를 실수형으로 표시할 때 자리 위치가 달라질 수 있습니다. 이것은 컴퓨터 처리 과정에서의 오차이기 때문에 지수값을 실수 서식 문자열을 이용해 출력하는 문제가 출제되지는 않을 것으로 생각됩니다.
오늘도 즐거운 하루 되세요.
-
*2017-03-20 14:59:16
안녕하세요.
6.1과 같이 앞의 6이 일반적으로 소수점을 포함한 전체 확보된 자릿수를 의미하는데 .. 이는 출력할 값보다 크기가 작은 경우입니다.
예를 들어 63쪽 5번과 같이
a = 123456789.0e-5f
지수형식은 가수부와 소수부를 나눠서 처리하는 것으로
실제 값은 소수점 위치가 지금보다 왼쪽으로 5칸 이동한
1234.56789입니다.
이 값에 %6.1을 적용하면 소수점을 포함한 6자리를 확보한 후 소수점 1자리를 출력하므로
1234.6이 됩니다.
%e와 같이 소수점을 지정하지 않으면 소수점 이하는 6자리로 자동 표시됩니다.
1234.56789에서 소수점 자리수를 6자리 표시하기 위해 현재 위치에서 소수점 위치를 왼쪽으로 3자리 이동합니다.
1.23456789e+03
소수점을 6자리만 표시하면 7자리에서 반올림하여 1.234568e+03이 됩니다. e+03은 소수점 위치를 원래 위치에서 3칸 이동했다는 의미입니다.
만일
1234.56789를
%.2f로 출력한다면 앞의 1은 전체 자리수로 지정할 수 없는 값입니다. 즉 표현할 자리수보다 서식 문자열에 지정한 자릿수가 작은 경우에는 정수부분은 모두 출력하고 소수점 부분만 지정된 자릿수에 맞게 출력됩니다.
그래서 1.2f로 지정하면 1234.58이 출력됩니다.
또한 표현할 자릿수보다 서식 문자열에 지정한 자릿수가 큰 경우 남은 자리는 공백으로 띄워져 표시됩니다.
마지막으로
지수형태를 실수형으로 표시할 때 자리 위치가 달라질 수 있습니다. 이것은 컴퓨터 처리 과정에서의 오차이기 때문에 지수값을 실수 서식 문자열을 이용해 출력하는 문제가 출제되지는 않을 것으로 생각됩니다.
오늘도 즐거운 하루 되세요.