The error characteristics of binary floating point are not well understood by many people. I was the centre of a brief discussion on comp.risks about it and received a number of very useful replies. Read about it [link|http://catless.ncl.ac.uk/Risks/17.60.html#subj9|here] and [link|http://catless.ncl.ac.uk/Risks/17.66.html#subj3|here].

Also, pow() is probably implemented as the old exp(log(a)*log(b)) trick or whichever way around that is.

In short, you probably shouldn't compare results with data types like that.

Wade.