为什么Delphi的Math.Payment函数返回负数

Mic*_*nny 0 delphi math financial delphi-2010

我正在尝试计算以下方案的每月付款:

5,000美元借款3年,每月复合8.00%,期末1000美元到期.

/*
From Math.pas 
function Payment(Rate: Extended;
 NPeriods: Integer;
 const PresentValue: Extended;
 const FutureValue: Extended;
 PaymentTime: TPaymentTime): Extended;
*/

var
  Pmt : Extended;
begin
  Pmt := Payment(0.08/12,36,5000,1000,ptEndOfPeriod);
  Edit1.Text := FloatToStr(Pmt);
end
Run Code Online (Sandbox Code Playgroud)

结果= -181.351526101918

结果正确,但它是否定的.

为什么Payment函数的结果返回负数?

Mar*_*der 8

负值是预期的.如果运行Excel的PMT功能,您将看到相同的结果.

该功能在钱的方向之间取得平衡.负号表示您正在为借入的资金支付资金(函数调用中的正值).如果在函数中切换为负值(即-5000和-1000),则结果为正.