Функция Pmt
Обновлен: Ноябрь 2007
Возвращает значение типа Double, определяющее платеж по аннуитету на основе периодических фиксированных платежей и постоянной процентной ставки.
Function Pmt( _
ByVal Rate As Double, _
ByVal NPer As Double, _
ByVal PV As Double, _
Optional ByVal FV As Double = 0, _
Optional ByVal Due As DueDate = DueDate.EndOfPeriod _
) As Double
Параметры
Rate
Обязательный. Double определяет процентную ставку за период. Например, при взятии ссуды на автомобиль под годовую процентную ставку (APR) размером 10% с ежемесячными выплатами ставка за период будет равна 0,1/12 или 0,0083.NPer
Обязательный.Double задает общее количество периодов платежей аннуитета. Например, при ежемесячных выплатах ссуды за автомобиль на протяжении 4 лет общее количество периодов выплат будет равно 4 x 12 (или 48).PV
Обязательный. Double задает текущую (нынешнюю) стоимость платежей, которые должны быть уплачены в будущем. Например, если для покупки автомобиля взят заем, то эта сумма представляет собой текущее значение предстоящих ежемесячных платежей за автомобиль.FV
Необязательный. Double задает требуемую будущую сумму или баланс наличности после уплаты последнего платежа. Например, будущее значение ссуды равно $0, поскольку такова будет ее величина после последней выплаты. Однако если требуется собрать за 18 лет сумму в $50 000 на образование детям, то будущая сумма будет равна $50 000. Если этот аргумент опущен, используется значение 0.Due
Необязательный. Объект типа Перечисление DueDate, указывающий время выплат. Этот аргумент должен быть либо DueDate.EndOfPeriod, если выплаты должны производиться в конце периода, или DueDate.BegOfPeriod в случае оплаты в начале периода. Если этот аргумент опущен, используется DueDate.EndOfPeriod.
Исключения
Тип исключения |
Номер ошибки |
Условие |
---|---|---|
NPer = 0. |
См. столбец "Номер ошибки", если выполняется обновление приложений Visual Basic 6.0, в которых используется неструктурированная обработка ошибок. (Можно сравнить номер ошибки с Свойство Number (объект Err).) Однако по возможности следует заменять такую систему управления ошибками на Обзор структурной обработки исключений в Visual Basic.
Заметки
Аннуитет представляет собой серию периодических фиксированных денежных выплат. Аннуитет может быть или платежом по ссуде (например, в случае ипотеки), или инвестицией (в случае ежемесячного сберегательного плана).
Аргументы Rate и NPer должны рассчитываться с использованием периодов платежей, выраженных в одинаковых единицах. Например, если Rate рассчитывается помесячно, то так же должен рассчитываться и NPer.
Для всех аргументов выплаченные суммы (например, сберегательные депозиты) обозначаются отрицательными числами, а полученные (например, чеки на дивиденды) — положительными.
Пример
В этом примере функция Pmt используется для возврата ежемесячного платежа по ссуде за определенный период. Заданными являются процентная ставка за период (APR / 12), общее число платежей (TotPmts), текущая или основная величина ссуды (PVal), будущее значение ссуды (FVal) и число, определяющее, когда — в начале или в конце периода — будет производиться платеж ((PayType).).
Sub TestPMT()
Dim PVal, APR, Payment, TotPmts As Double
Dim PayType As DueDate
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?"))
If APR > 1 Then APR = APR / 100 ' Ensure proper form.
TotPmts = CDbl(InputBox("How many monthly payments will you 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 = Pmt(APR / 12, TotPmts, -PVal, FVal, PayType)
MsgBox("Your payment will be " & Format(Payment, Fmt) & " per month.")
End Sub
Требования
Пространство имен:Microsoft.VisualBasic
**Модуль:**Financial
**Сборка:**Visual Basic (библиотека времени выполнения, в Microsoft.VisualBasic.dll)