8번 문제의
float a = 123456789.0e-5f의
서식 문자열 "%f"에 대응하는 실수형 변수 값 a의 답이
1234.56789 가 아닌
1234.567871 인지요?
답변 부탁드려요
안녕하세요.
실수형의 경우 숫자를 저장할 때 지수부와 가수부를 분리하여 저장하는데, 이를 다시 출력할 때 유효 자리수에 맞게 출력합니다.
이로 인해 C나 Java는 소수점 자리수를 지정하지 않은 경우 기본적으로 6자리를 표현하기 위해 지수부와 가수부로 나눠 저장된 내용을 다시 자리수에 맞추어 출력하면서 일부 오차가 발생하는데, 이 경우가 그런 경우라고 할 수 있습니다.
C언어 처리 과정에 따른 오차이므로 세부적인 내용을 언급할 수는 없지만 이 문제의 경우 소수점 자리수에 맞게 값이 어떻게 출력되는지 확인하는 정도로만 이해하시면 될 것 같습니다.
저장된 값 보다 더 많은 유효 자리수를 표시하는 경우는 오차가 발생할 수 있으므로 문제로 출제될 가능성이 낮습니다.
오늘도 즐거운 하루 되세요.
-
*2017-03-17 10:00:34
안녕하세요.
실수형의 경우 숫자를 저장할 때 지수부와 가수부를 분리하여 저장하는데, 이를 다시 출력할 때 유효 자리수에 맞게 출력합니다.
이로 인해 C나 Java는 소수점 자리수를 지정하지 않은 경우 기본적으로 6자리를 표현하기 위해 지수부와 가수부로 나눠 저장된 내용을 다시 자리수에 맞추어 출력하면서 일부 오차가 발생하는데, 이 경우가 그런 경우라고 할 수 있습니다.
C언어 처리 과정에 따른 오차이므로 세부적인 내용을 언급할 수는 없지만 이 문제의 경우 소수점 자리수에 맞게 값이 어떻게 출력되는지 확인하는 정도로만 이해하시면 될 것 같습니다.
저장된 값 보다 더 많은 유효 자리수를 표시하는 경우는 오차가 발생할 수 있으므로 문제로 출제될 가능성이 낮습니다.
오늘도 즐거운 하루 되세요.