我正在调试我的项目,但找不到错误。最后我找到了它。看代码。您认为一切正常,结果将是“OK!OK!OK!”,不是吗?现在用VC编译它(我试过vs2005和vs2008)。
#include <math.h>
#include <stdio.h>
int main () {
for ( double x = 90100.0; x<90120.0; x+=1 )
{
if ( cos(x) == cos(x) )
printf ("x==%f OK!\n", x);
else
printf ("x==%f FAIL!\n", x);
}
getchar();
return 0;
}
神奇的双常数是 90112.0。当 x < 90112.0 时一切正常,当 x > 90112.0 时——不!你可以把cos改成sin。
有任何想法吗?不要忘记 sin 和 cos 是周期性的。