작성
·
182
0
[실수 연산 관련]
영상에서는 Math.ceil() 이라는 Math 객체의 ceil 메서드를 사용하셔서 풀어주셨는데,
저는 사실 실수 연산이라는 것이 컴퓨터가 이진수로 되어 있어서 제대로 처리를 하지 못한다고 배웠습니다.
그렇다면 언제 어디서든 실수 연산을 하다가 결과가 예를 들어 12.0000000000001 이렇게 나오게 되면
원래 형식상 저희는 12가 정확히 나올 것으로 예상했지만 위와 같이 부정확한 수가 나올 수 있습니다.
그러면 풀이대로 올림수를 하면 13이 나오게 될 겁니다.
저희는 12로 나올 것으로 정확히 예상했지만 13이 나오게 되면 논리적으로 맞지 않다고 볼 수 있는데
혹시 제가 어떻게 생각하거나 접근하면 좋을까요?
답변 1
3
안녕하세요^^
12로 나누어 떨어지는 상황에서의 몫은 다 정수이니 2진수로 표현이 가능해서 위에 예 처럼 12를 12.0000000000000001로 하는 경우는 없을 것 같습니다.
그게 정 걱정되시면 몫과 나머지로 해결하시면 좋겠습니다.
%연산다를 이용해
if(n%12===0) answer=parseInt(n/12);
else answer=parseInt(n/12)+1;
처럼 하세요.
감사합니다.