2009-12-19 1 views
0

Я пытаюсь вычислить ежемесячный платеж по следующему сценарию:Почему Math.Payment Функция Delphi, возвращает отрицательное число

$ 5000 заимствован в течение 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 

Result = -181,351526101918

результат является правильным, за исключением отрицательно.

Почему результат функции «Оплата» возвращает отрицательное число?

ответ

8

Ожидается отрицательное значение. Если вы запустите функцию PMT Excel, вы увидите тот же результат.

Функция баланса между направлением движения денег. Отрицательный знак означает, что вы платите деньги против заемных денег (положительные значения в вызове функции). Если вы переключитесь на отрицательные значения в функции (т. Е. -5000 и -1000), результат будет положительным.

1

Поскольку вы заимствовали деньги, не могли бы вы попробовать с ** - ** 5000 и ** - ** 1000?

1

Для 5000, чтобы стать 1000, вам нужно что-то убрать, а не добавить к нему. Поскольку вы платите и не получаете, вы должны ожидать отрицательную сумму.