Problema con funcion escalar

 buen dia a todos, tengo un problema con una funcion escalar, lo que quiero es que me devuelva un tipo de dato money pero al ejecutar la funcion me retorna 0.00, y no se por que esta sucediendo eso 

aqui les dejo la codificacion de la funcion


USE [sisfinan]
GO
/****** Object: UserDefinedFunction [dbo].[obtener_total_interes_sistema_aleman] Script Date: 03/02/2010 00:00:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create function [dbo].[obtener_total_interes_sistema_aleman]
(
@deuda money,
@plazo smallint,
@tasa real,
)
returns money
as
begin
declare @monto_interes money,@id_cuota smallint, @total_interes money
select @id_cuota = 1;
while @id_cuota begin
select @monto_interes = @monto_interes + @deuda *(@tasa/100),
@total_interes = @total_interes + @monto_interes,
@deuda = @deuda - @capital
select @id_cuota = @id_cuota +1;
end;
return isnull(@total_interes,0);

muchas gracias por su ayuda

saludos