Ah... but how would you get around that? Is there any way of disabling the rounding?
You could use SET NUMERIC_ROUNDABORT ON to get an error instead of a rounded value. Using this with the question's query gives an error message, for example
SET NUMERIC_ROUNDABORT ON
declare @d decimal
select @d = 3.564636
select @dMsg 8115, Level 16, State 7, Line 7
Arithmetic overflow error converting numeric to data type numeric.