This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

ieee float -1#nan value

Hi,
I accidentally stuff the value of 0xFFFF into a float variable (fVal). My emulator shows me its value is -1#nan (not a number) and my limit clipping code did not work on this value

ie,

if (fVal > fMax) fVal = fMax;
else if (fVal < fMin) fVal = fMin;

You'd think that the fVal would always be inside the limits of fMin and fMax for all values of fVal, but the code did not work when fVal contains the -1#nan value. How should I handle this? Is this a compiler bug?

Thanks
Andy

Parents
  • I believe there is a library function _chkfloat_ which I think may validate a floating point number, although I can't find any documentation for it in my manual. It appears in the include file "intrins.h".

    Not all combinations of the 32 bits in an IEEE floating point number represent valid floats, take a look at one of the many websites that have a discussion of IEEE floating point format.

    The best way to handle this is not to stuff values into floats!

    And no, it isn't a bug in the compiler.

    Stefan

Reply
  • I believe there is a library function _chkfloat_ which I think may validate a floating point number, although I can't find any documentation for it in my manual. It appears in the include file "intrins.h".

    Not all combinations of the 32 bits in an IEEE floating point number represent valid floats, take a look at one of the many websites that have a discussion of IEEE floating point format.

    The best way to handle this is not to stuff values into floats!

    And no, it isn't a bug in the compiler.

    Stefan

Children