16430번 - 제리와 톰
이번에도 왜 틀렸는지 모르겠네요
반례입니다
4 5
Ans : 1 5
Output : 0 5
(n이 0.2가 아닌 0.19999999999999996로 저장됩니다.)
ㄴ 그러네요 왜 그런걸까요?
ㄴ 일단 int를 round로 바꿔서 문제가 맞긴 했어요 감사합니다.
그 이유는 '정확한 실수'를 저장할 수 없다는 데 있습니다. 파이썬은 실수를 부동소수점 방식으로 저장하는데, 이는 오차가 있습니다.
대표적인 예시로 0.1 + 0.2 == 0.3은 False를 리턴합니다.
앞으로 문제를 해결할 때 실수형(float)의 비교는 쓰지 않는게 좋습니다!
(만약 굳이 써야한다면, decimal 모듈이 있습니다)
참고로 이 문제는, 분모와 분자를 각각 정수로 생각해서 풀면 됩니다. (굳이 나누지 않아도 됩니다)
ㄴ 감사합니다.
댓글을 작성하려면 로그인해야 합니다.
qkgkq18 2년 전
이번에도 왜 틀렸는지 모르겠네요