我寫了一個簡單的函數,並希望知道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);
它工作正常進行測試。有人有什麼想法?
測試精確的浮點值幾乎總是一個壞主意。 –
謝謝大家的幫助和評論!現在對我來說很清楚! –