I once remeber reading an article on how CPUs make mathematical mistakes. You wouldnt happen to be encountering these issues on a Pentium chip would you? As far as I an awarem this is the Pentium specialty - although there was a time when google had this problem also . The inherent problem is how to debug stuff if its the CPU producing waked up results.

If I remember correctly, its specifically related to the floating point XOR gates for division in the ALU... (Someone please check this). Other than that I woud say your best bet is to either round or use an approximate...