• 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