Yeah, also tried this but whilst it worked for this example it fails for others (eg fn_round(1.12345678)=1.123456):
create function fn_roundup(@num decimal(38,33),@dp int)
returns decimal(38,33)
as begin
if @dp <0 set @dp=0
return @ceiling(@num*power(10,@dp)) / power(10,@dp)
end