Функция IPmt

Обновлен: Ноябрь 2007

Возвращает значение типа Double, определяющее процентный платеж аннуитета, рассчитанное на основе периодических фиксированных выплат и постоянной процентной ставки.

Function IPmt( _
   ByVal Rate As Double, _
   ByVal Per 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.

  • Per
    Требуется. Double, указывающий расчетный период в интервале от 1 до NPer.

  • NPer
    Требуется. Значение типа Double, задающее общее количество периодов платежей аннуитета. Например, при ежемесячных выплатах ссуды за автомобиль на протяжении 4 лет общее количество периодов выплат будет равно 4 * 12 (или 48).

  • PV
    Требуется. Значение типа Double, задающее текущую сумму (или значение на сегодняшний день) набора предстоящих платежей или поступлений. Например, если для покупки автомобиля взят заем, то эта сумма представляет собой текущее значение предстоящих ежемесячных платежей за автомобиль.

  • FV
    Дополнительно. Значение типа Double, задающее требуемую будущую сумму или баланс наличности после уплаты последнего платежа. Например, будущее значение ссуды равно $0, поcкольку такова будет ее величина после последней выплаты. Однако если требуется собрать за 18 лет сумму в $50 000 на образование детям, то будущая сумма будет равна $50 000. Если этот аргумент опущен, используется значение 0.

  • Due
    Необязательное. Объект типа Перечисление DueDate, указывающий время выплат. Этот аргумент должен быть либо DueDate.EndOfPeriod, если выплаты должны производиться в конце периода, или DueDate.BegOfPeriod в случае оплаты в начале периода. Если этот аргумент опущен, используется DueDate.EndOfPeriod.

Исключения

Тип исключения

Номер ошибки

Условия

ArgumentException

5

Значение параметра Per <= 0 или Per > NPer.

См. столбец "Номер ошибки", если выполняется обновление приложений Visual Basic 6.0, в которых используется неструктурированная обработка ошибок. (Можно сравнить номер ошибки с Свойство Number (объект Err).) Однако по возможности, следует заменять такую систему управления ошибками на Обзор структурной обработки исключений в Visual Basic.

Заметки

Аннуитет представляет собой серию периодических фиксированных денежных выплат. Аннуитет может быть или платежом по ссуде (например, в случае ипотеки), или инвестицией (в случае месячного сберегательного плана).

Аргументы Rate и NPer должны рассчитываться с использованием периодов платежей, выраженных в одинаковых единицах. Например, если Rate рассчитывается помесячно, то так же должен рассчитываться и NPer.

Для всех аргументов выплаченные суммы (например, сберегательные депозиты) обозначаются отрицательными числами, а полученные (например, чеки на дивиденды) — положительными.

Пример

В этом примере функция IPmt используется для расчета суммы процентов, входящей в общую сумму платежа, когда суммы всех платежей одинаковы. Заданными являются процентная ставка за период (APR / 12), период платежа (Period), общее число платежей (TotPmts), текущая или основная величина ссуды (PVal), будущее значение ссуды (FVal) и число, определяющее в начале или в конце периода будет производиться платеж (PayType).

Sub TestIPMT()
    Dim APR, PVal, Period, IntPmt, TotInt, TotPmts As Double
    Dim PayType As DueDate
    Dim Response As MsgBoxResult

    ' Usually 0 for a loan.
    Dim Fval As Double = 0
    ' Define money format.
    Dim Fmt As String = "###,###,##0.00"
    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 = CInt(InputBox("How many monthly payments?"))
    Response = MsgBox("Do you make payments at end of the month?", MsgBoxStyle.YesNo)
    If Response = MsgBoxResult.No Then
        PayType = DueDate.BegOfPeriod
    Else
        PayType = DueDate.EndOfPeriod
    End If
    For Period = 1 To TotPmts   ' Total all interest.
        IntPmt = IPmt(APR / 12, Period, TotPmts, -PVal, Fval, PayType)
        TotInt = TotInt + IntPmt
    Next Period

    ' Display results.
    MsgBox("You will pay a total of " & Format(TotInt, Fmt) & _
        " in interest for this loan.")
End Sub

Требования

Пространство имен:Microsoft.VisualBasic

**Модуль:**Financial

**Сборка:**Visual Basic (библиотека времени выполнения, в Microsoft.VisualBasic.dll)

См. также

Ссылки

Сводка по финансовым функциям

ArgumentException