Mathcad appears to be passing values different from their full precision. In my user-defined function, I was checking to see whether the value passed was greater than 1.400. When I use 1.3994 in Mathcad, the user function sees it as less than 1.400, but when I use 1.3995, the user function sees it as greater than 1.400. The same function in Mathcad 7 worked fine.
It is not quite as bad as I thought. (I was rounding to the third decimal place internally.)
However, when I use 1.4 in Mathcad, it passes 1.3999999999999999. When I do a floor(value + 0.5) in C it comes out 1.4000000000000001 which passes the GREATER THAN test when I don't want it to. It did work okay in Mathcad 7.