我写了一个简单的函数,并希望知道assert宏在使用中。当我在第六个断言函数后测试函数(moving_hysteresis)时,我得到一个中止,但我找不到原因。该moving_hysteresis()函数如下:C中带有负浮点的断言
float moving_hysteresis(float Delta,float temp)
{
float delta=Delta;
float temp_min=ZERO;
float temp_max=delta;
float result;
if(temp<=temp_max)
{
if(temp>=temp_min)
{
result=temp;
return result;
}
else
{
result=temp+delta;
return result;
}
}
else
{
result=temp-delta;
return result;
}
}
如果我尝试用
assert(moving_hsysteresis(5.00,-5.01)==(float)-0.01);
测试这个,我得到一个说法,我无法找出原因... 例如,如果我尝试与
assert(moving_hsysteresis(5.00,-2.36)==(float)2.64);
它工作正常进行测试。有人有什么想法?
测试精确的浮点值几乎总是一个坏主意。 –
谢谢大家的帮助和评论!现在对我来说很清楚! –