'Real' like 'float' is an approximate data type. There are some numbers that can't be exactly represented. If you need fixed precision, you should probably use numeric(s,p) instead of real. BOL has a good explanation of the differences.
And then again, I might be wrong ...
David Webb