본문 바로가기

컴퓨터 공학 자료(학부)/Error log

C에서 소수점 계산 에러


방금 이것 때문에 두 시간을 헤맸는데
3.20을 float형 변수 x로 받고
다른 "3.20"을 문자형으로 받아서 atof()를 이용하여 3.20으로 받아서
if(atof("3.20") == x)
라는 구문을 썼는데
아무리 디버깅 해도 if문 안으로 진입을 하지 않아서 몇 시간을 찾다가
문득 피엘에서 배운 내용이 생각나
printf("%2.20f,x); 를 해보니
세상에

한 놈은 3.200000000000000001 이었고
다른 한놈은 3.2000000000000012 였다;;;;;;;;

세상에.