문제를 풀긴했는데 이해되지 않는 점이 있습니다.

sleepzzz214 Reply 4 years 32 weeks ago
맨처음에는 float으로 변수를 입력하여 문제를 해결하려고 했습니다. 그런데 3번째로 출력해야 되는 부분이 계속 올림이 되지 않아서 도저히 왜 틀린지 이유를 못찾고 있었습니다. 그런데 그냥 float을 double로 바꾸자 올림이 안돼는 문제가 해결 되었습니다. 왜 이런건지 설명해주실 수 있나요?
withcs2 Reply 4 years 32 weeks ago
컴퓨터는 우리가 10진수로 입력한 값을 2진수로 변환하여 계산하고 다시 10진수로 출력하기 때문에 실수형은 오차가 발생할 수밖에 없습니다. float은 보통 소수점 아래 6번째자리까지, double은 소수점 아래 15자리까지 믿을만합니다. 하지만 실수형끼리 나눗셈을 하면 유효숫자가 줄어들게 됩니다. 그 나눈 값을 곱하면 곱한 값 역시 유효숫자가 줄어들어요. 괄호 빼고 계산하면(곱셈 먼저 계산하면) float도 accept됩니다.