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;
}
}
'프로그램 경험 > C/C++' 카테고리의 다른 글
[C++ Builder] TPanel에 TForm 붙이기 (0) | 2012.09.06 |
---|---|
[C++ Builder] double 을 string 으로 변환 (0) | 2012.09.06 |
[C++ Builder] 테마 변경 (0) | 2011.06.08 |
[C++ Builder] TColor (0) | 2011.01.03 |
[C++ Builder] 날짜 클래스 포맷 변경 (0) | 2010.12.14 |