float, double 등은 부동소수점 오차때문에 50이라는 수를 저장할 때 49.9999999나 50.0000001이 되는 등 정확히 나타내지지 못합니다
즉 평균이 50이고 점수가 50이면 원래 넘지 못하지만 49.999999로 저장되었다면 50>49.99999가 성립되게 됩니다.
즉 이런 비교 연산을 해야할 경우 a>b/n 보다는 a*n>b로 정수 연산만 사용하는것이 타당합니다.
같은 이유로 5~10줄에서 개수를 float로 저장하면 실제 값보다 한번 적게 for문을 돌게 될 가능성이 있고 애초에 개수에는 float를 사용할 필요가 없습니다.
wjdwwidz_c 2년 전 1
float으로 했다가 이게 문제일까 싶어서 double로도 바꿔봤는데도 통과가 안 됩니다
뭐가 문제일까용?