2009-12-19 85 views
0

我试图计算以下情形每月支付:为什么德尔福Math.Payment函数返回一个负数

$ 5,000的$ 1,000每月复利8.00%,由于在年底借3年期限。

/* 
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 

结果= -181.351526101918

的结果是正确的,除了它是负的。

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

回答

8

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

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

1

既然你借了钱,你可以试试** - ** 5000和** - ** 1000吗?

1

5000要成为1000,你必须拿走东西,而不是增加它。由于您正在付款而没有收到付款,因此您应该预计会有负值。