Financial.PPmt(Double, Double, Double, Double, Double, DueDate) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает значение, определяющее главный платеж аннуитета, рассчитываемый на основе периодических фиксированных выплат и постоянной процентной ставки.
public static double PPmt (double Rate, double Per, double NPer, double PV, double FV = 0, Microsoft.VisualBasic.DueDate Due = Microsoft.VisualBasic.DueDate.EndOfPeriod);
static member PPmt : double * double * double * double * double * Microsoft.VisualBasic.DueDate -> double
Public Function PPmt (Rate As Double, Per As Double, NPer As Double, PV As Double, Optional FV As Double = 0, Optional Due As DueDate = Microsoft.VisualBasic.DueDate.EndOfPeriod) As Double
Параметры
- Rate
- Double
Обязательный. Процентная ставка за период. Например, при взятии ссуды на автомобиль под годовую процентную ставку (APR) размером 10% с ежемесячными выплатами ставка за период равна отношению 0,1/12 или 0,0083.
- Per
- Double
Обязательный. Расчетный период в интервале от 1 до NPer
.
- NPer
- Double
Обязательный. Общее количество периодов платежей аннуитета. Например, при ежемесячных выплатах ссуды за автомобиль на протяжении 4 лет общее количество периодов выплат будет равно 4 x 12 (или 48).
- PV
- Double
Обязательный. Текущее значение из серии будущих платежей или поступлений. Например, если для покупки автомобиля взят заем, то эта сумма представляет собой текущее значение предстоящих ежемесячных платежей за автомобиль.
- FV
- Double
Необязательный элемент. Значение, задающее требуемую будущую сумму или баланс наличности после уплаты последнего платежа. Например, будущее значение ссуды равно $0, поcкольку такова будет ее величина после последней выплаты. Но если требуется собрать за 18 лет сумму в $50 000 на образование детей, то будущая сумма будет равна $50 000. Если этот аргумент опущен, используется значение 0.
- Due
- DueDate
Необязательный элемент. Объект типа DueDate, указывающий время выплат. Этот аргумент должен равняться либо DueDate.EndOfPeriod
, если выплаты должны производиться в конце периода, либо DueDate.BegOfPeriod
в случае оплаты в начале периода. Если аргумент не указан, принимается значение DueDate.EndOfPeriod
.
Возвращаемое значение
Главный платеж аннуитета, рассчитываемый на основе периодических фиксированных выплат и постоянной процентной ставки.
Исключения
Per
<=0 или Per
>NPer
.
Примеры
В этом примере функция используется PPmt
для вычисления объема платежа за определенный период, если все платежи имеют одинаковую стоимость. Дается процентная ставка за период (APR / 12
), период выплаты, в течение которого основная часть является желаемой (Period
), общее количество платежей (TotPmts
), текущая стоимость или основная сумма кредита (PVal
), будущая стоимость кредита (FVal
) и число, указывающее, должен ли платеж производиться в начале или конце периода выплаты (PayType
).
Sub TestPPMT()
Dim PVal, APR, TotPmts, Payment, Period, P, I As Double
Dim PayType As DueDate
Dim Msg As String
Dim Response As MsgBoxResult
' Define money format.
Dim Fmt As String = "###,###,##0.00"
' Usually 0 for a loan.
Dim Fval As Double = 0
PVal = CDbl(InputBox("How much do you want to borrow?"))
APR = CDbl(InputBox("What is the annual percentage rate of your loan?"))
' Ensure proper form.
If APR > 1 Then APR = APR / 100
TotPmts = CDbl(InputBox("How many monthly payments do you have to make?"))
Response = MsgBox("Do you make payments at the end of month?", MsgBoxStyle.YesNo)
If Response = MsgBoxResult.No Then
PayType = DueDate.BegOfPeriod
Else
PayType = DueDate.EndOfPeriod
End If
Payment = Math.Abs(-Pmt(APR / 12, TotPmts, PVal, FVal, PayType))
Msg = "Your monthly payment is " & Format(Payment, Fmt) & ". "
Msg = Msg & "Would you like a breakdown of your principal and "
Msg = Msg & "interest per period?"
' See if chart is desired.
Response = MsgBox(Msg, MsgBoxStyle.YesNo)
If Response <> MsgBoxResult.No Then
If TotPmts > 12 Then MsgBox("Only first year will be shown.")
Msg = "Month Payment Principal Interest" & Environment.NewLine
For Period = 1 To TotPmts
' Show only first 12.
If Period > 12 Then Exit For
P = PPmt(APR / 12, Period, TotPmts, -PVal, FVal, PayType)
' Round principal.
P = (Int((P + 0.005) * 100) / 100)
I = Payment - P
' Round interest.
I = (Int((I + 0.005) * 100) / 100)
Msg = Msg & Period & vbTab & Format(Payment, Fmt)
Msg = Msg & vbTab & Format(P, Fmt) & vbTab & Format(I, Fmt) & Environment.NewLine
Next Period
' Display amortization table.
MsgBox(Msg)
End If
End Sub
Комментарии
Аннуитет — это ряд фиксированных денежных платежей, произведенных за определенный период времени. Аннуитет может быть кредитом (например, ипотекой дома) или инвестицией (например, ежемесячный накопительный план).
Аргументы Rate
и NPer
должны вычисляться с использованием периодов оплаты, выраженных в одних и том же единицах. Например, если Rate
вычисляется с использованием месяцев, NPer
то также должен вычисляться с использованием месяцев.
Для всех аргументов выплата денежных средств (например, вкладов в сбережения) представлена отрицательными числами; полученные денежные средства (например, чеки дивидендов) представлены положительными числами.