Я не уверен, что понимаю вашу проблему.
При взгляде на код ниже
DECLARE @money AS MONEY,
@varchar AS VARCHAR(20)
SET @varchar = '1000.456789'
SELECT CAST(@varchar AS MONEY)
SELECT @money = @varchar
SELECT @money
округляется до ближайшего 4-го знака, а не до 1-го знака.