ある値aが非数(nan)やinfとなったとき、
if文で検出する方法を教えてください。

たとえば、
double a;
if(a==nan)
a=0;

としてもうまくいきません。