I was able to reproduce your problem when I added .01 to the original value. Maybe in the table you have 131281.01 but don't see it in the output?
DECLARE @R REAL = 131281.01
DECLARE @F FLOAT(53) = 131281.01
DECLARE @D DECIMAL(18,5) = CONVERT(DECIMAL(18,5), @R)
SELECT R = @R, D = @D, F = @F
R D F
------------- ------------ ---------
131281 131281.01563 131281.01
Note how R doesn't show digits after the decimal point. It seem to be somewhat known issue and appear to be due to the size of REAL - it's actually FLOAT(24). If I increase the size (see F) or reduce number of digits in the R, it works.
Also, check this. Looks like Aaron has solution: