Casting the float to a VARCHAR value is what causes the rounding you are seeing:
select
a.MyFloat,
ToVarchar = convert(varchar(30),a.MyFloat),
ToLtrimRtrim =ltrim(rtrim(a.MyFloat))
from
( Select MyFloat = convert(float,10041.25E00) ) a
Results:
MyFloat ToVarchar ToLtrimRtrim
---------------------- ------------------------------ -----------------------
10041.25 10041.3 10041.3