| [ CnUnix ] in KIDS 글 쓴 이(By): diploid ( 2n) 날 짜 (Date): 2003년 5월 26일 월요일 오후 11시 31분 12초 제 목(Title): [Q] C/C++의 if문에서.. double x = 1.0; 이렇게 한후에 if (x == 1.0) , if (x < 1.0), if (x>1.0) 의 결과가 참,거짓,거짓이 되야할텐데 그렇지 않은 경우가 있었읍니다(셋중에 어느것인지는 잘 기억이..) 디버깅을 해보니까 x의 값이 0.999....998 이런식으로 1과는 약간 다른 값을 갖더군요. 어딘지 모르게 제가 실수를 한건가요? 아니면 if문에서 double을 비교할때는 위와 같은 상황을 고려해야 하나요? 한가지 더 말씀드리면 위에서 x의 값을 y에가 저장했다가 y의 값을 다시 x에 저장하는등의 과정이 있었읍니다. 그 와중에 x의 값에 오차가 생겼을지도... 비슷한 경험 있으신분의 조언 부탁드립니다. 미리 감사드립니다. |