게시판에 설명된 글을 읽었는데도 이해가 가지 않아서 질문드립니다. 컴퓨터가 1.000000001이나 0.999999999를 1과 다르게 본다는 것도 알겠고, 실수 표현의 유효숫자 자릿수의 개수가 정해져 있는 것도 알겠습니다. 근데 이 문제에서 그 부분이 왜 문제가 되나요? 10만개의 데이터에 대해 입력 범위가 0~10까지의 소수가 소수점 첫째 자리까지만 들어오는데 다 더해도 double의 유효숫자 15자리를 넘어설 것 같지 않고, 아주 작은 부분에서 오차가 있어도 소수점 셋째 자리에서 반올림하는데 영향을 줄 정도로 큰 오차는 아니지 않나요? 어떻게 저 작은 오차로 반올림 결과값이 달라지는지 이해가 가지 않습니다.
감사합니다. 마지막으로 질문 하나만 더 드려도 될까요? 총합을 나눈 평균값이 10.1049999999999와 같이 나왔다고 한다면 답을 10.10으로 보는게 맞지 않나요? 부동소수점 방식의 오차 때문에 나눗셈 결과가 10.105로 나왔어야 할 것이 10.1049999999999로 저장되게 된다는 말씀이신가요?
p_ce1052 4년 전