PMT 函数excel 利率为零时的公式
PMT function excel formula when the rate is zero
我正在尝试在 SQL 服务器中使用在 MS Excel 中找到的 PMT 函数执行一个函数。
当我在 excel
中使用时
=PMT(0;3;-29590)
给我这个结果:
,863.33
当我尝试任何公式时,给我除以零错误。我在 3 个时期内有一些付款没有任何费率。那么我该如何解决这个问题呢?
这里是实际函数:
create function dbo.PMT
(
@rate float,
@periods smallint,
@principal numeric(20,2)
)
returns numeric (38,9)
as
begin
declare @pmt numeric (38,9)
declare @WK_periods float,
@WK_principal float,
@wk_One float,
@WK_power float
select @WK_periods = @periods,
@WK_principal = @principal,
@WK_One = 1
select @pmt =
round(
( @WK_principal * (@rate*power(@WK_One+@rate,@WK_periods)))
/ (power(@WK_One+@rate,@WK_periods)-@WK_One)
,9)
return @pmt
end
为您的函数添加一个简单的 if
if (@rate = 0)
select @pmt = (@principal / @periods) * -1
else
select @pmt =
round(
( @WK_principal * (@rate*power(@WK_One+@rate,@WK_periods)))
/ (power(@WK_One+@rate,@WK_periods)-@WK_One)
,9)
我正在尝试在 SQL 服务器中使用在 MS Excel 中找到的 PMT 函数执行一个函数。
当我在 excel
中使用时=PMT(0;3;-29590)
给我这个结果:
,863.33
当我尝试任何公式时,给我除以零错误。我在 3 个时期内有一些付款没有任何费率。那么我该如何解决这个问题呢?
这里是实际函数:
create function dbo.PMT
(
@rate float,
@periods smallint,
@principal numeric(20,2)
)
returns numeric (38,9)
as
begin
declare @pmt numeric (38,9)
declare @WK_periods float,
@WK_principal float,
@wk_One float,
@WK_power float
select @WK_periods = @periods,
@WK_principal = @principal,
@WK_One = 1
select @pmt =
round(
( @WK_principal * (@rate*power(@WK_One+@rate,@WK_periods)))
/ (power(@WK_One+@rate,@WK_periods)-@WK_One)
,9)
return @pmt
end
为您的函数添加一个简单的 if
if (@rate = 0)
select @pmt = (@principal / @periods) * -1
else
select @pmt =
round(
( @WK_principal * (@rate*power(@WK_One+@rate,@WK_periods)))
/ (power(@WK_One+@rate,@WK_periods)-@WK_One)
,9)