본문 바로가기

프로그램 경험/C/C++

[C++ Builder] 부동 소수점 비교

if를 통해서 소수점을 비교하면 자꾸 잘못된 결과를 표현 한다. 

소수점은 그냥 비교하면 안되는 것이었다...ㅠㅠ


아래와 같은 비교 함수를 만들어서 사용하면 된다.


//부동 소수점 비교

bool __fastcall TFrmTest::double_equals(double f1, double f2)

{

double precision = 0.00001;


if (((f1 - precision) < f2) && ((f1 + precision) > f2))

{

return true;

}

else

{

return false;

}

}