I have a library function RoundDouble() which takes a double value and rounds to 2DP. This is mostly use for display and other applications where trimming is required, but I have used it to compare values with strange results.
I use Visual Studio 10 Professional to build solutions.
The test :
if( RoundDouble(a) > RoundDouble(b) )
frequently returns TRUE, even when both values are identical BOTH rounded AND before rounding. I have of course used debugging to test the values being compared.