#define EPSILON 0.000001
Bool FloatEqualJudge( float x, float y )
{
/* 判断方法:
* 1. 两个浮点数在二进制上各个数据位完全相同
* 2. 小于某个极小的模糊因子,根据精度要求设置
* 3. 转为整型用位异或判断数据位
*/
if( x == y
|| fabs( x - y ) < EPSILON
|| ( *( (uint32_t*)&x ) ^ *( (uint32_t*)&y ) ) == 1 )
{
return True;
}
else
{
return False;
}
}
C语言浮点数判断相等
于 2023-08-12 21:08:16 首次发布