Slightly different approach. This also won't fall over if a number is greater than 999:
WITH VTE AS (
SELECT *
FROM (VALUES(3),(25.75),(12),(125.8),(1000),(1857.5)) V(I))
SELECT I,
RIGHT('0000' + CONVERT(varchar(8),CONVERT(int,ROUND(I*10,0))),4) AS LeadingZeros
FROM VTE;
Thom~
Excuse my typos and sometimes awful grammar. My fingers work faster than my brain does.
Larnu.uk