CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ 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의 값에 오차가 생겼을지도...

비슷한 경험 있으신분의 조언 부탁드립니다. 
미리 감사드립니다.


[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.