왜 wrong answer가 뜨죠?

cjmp1java Reply 9 years 2 weeks ago
변수 자료형도 다맞춘거같은데 왜일까요??
persuade Reply 9 years 2 weeks ago
double 자료형으로 할 경우 에러가 해결됩니다. 이유에 대해서는 검토중에 있습니다. 잠시 후에 계속...
persuade Reply 9 years 2 weeks ago
음.. 이 부분은 정확히 잘 모르겠네요 - -;; 다음 분께 패스! ㅜㅜ);;
pichulia Reply 9 years 2 weeks ago
http://en.wikipedia.org/wiki/Floating_point#Internal_representation 많이 보진 말고...필요한 부분만 보시면.. float형은 4byte (32bit)를 차지하는 실수 자료형입니다. 이 수가 확실하게 표현할 수 있는 수의 개수는 보통 7~8개 정도라는 것을 표에서 보여주고 있네요 ... 문제에서는 학생수의 범위, 학생 점수의 범위 등이 언급되있지 않지만..데이터중에 학생의 수가 3자리수인 경우가 있습니다. 이 경우, 평균을 넘는 학생을 표현하는 3개의 수 + 소수점 이하 3자리까지 표현해야하는데 드는 4개의 수(반올림을 고려해서) 가 정확한 값을 가져야하는데... float가 표현할 수 있는 수의 범위를 아슬아슬하게 걸쳐서 오차로 인해 틀린 것입니다. float형 변수에 1을 1,000,000,000번 더하면 그 결과값은 16,777,216 가 나옵니다. float의 신뢰도가 이정도 수준이죠. 그러니까 게임 프로그래밍이나 임베디드 할거 아니면 float를 멀리하고 double을 쓰는 것이 좋습니다.
cjmp1 Reply 9 years 2 weeks ago
감사합니다