Rate (Función)

Actualización: noviembre 2007

Devuelve un valor de tipo Double que indica el tipo de interés por período de una anualidad.

Function Rate( _
   ByVal NPer As Double, _
   ByVal Pmt As Double, _
   ByVal PV As Double, _
   Optional ByVal FV As Double = 0, _
   Optional ByVal Due As DueDate = DueDate.EndOfPeriod, _
   Optional ByVal Guess As Double = 0.1 _
) As Double

Parámetros

  • NPer
    Requerido. Double especifica el número total de períodos de pago (plazos) de la anualidad. Por ejemplo, si realiza pagos mensuales correspondientes a un crédito para adquirir un automóvil a cuatro años, el crédito tendrá un total de 4 * 12 (ó 48) períodos de pago.

  • Pmt
    Requerido. Double indica el pago que se va a realizar cada período. Normalmente, los pagos contienen un capital principal y un interés que no varía a lo largo de la duración de la anualidad.

  • PV
    Requerido. Double indica el valor actual, o valor a día de hoy, de una serie de pagos o cobros futuros. Por ejemplo, en el momento de obtener un crédito para comprar un automóvil, el importe del mismo es el valor actual para el prestamista de los pagos mensuales que se realizarán.

  • FV
    Opcional. Double indica el valor futuro o saldo en efectivo que se desea tener una vez realizado el pago final. Por ejemplo, el valor futuro de un crédito es 0 $, puesto que ése es su valor después del pago final. Sin embargo, si desea ahorrar 50.000 dólares durante 18 años para la educación de su hijo, el valor futuro será 50.000 dólares. Si se omite, se supone que es 0.

  • Due
    Opcional. Objeto de tipo DueDate (Enumeración) que indica cuándo vencen los pagos. Este argumento debe ser DueDate.EndOfPeriod si los pagos vencen al final del período o DueDate.BegOfPeriod si los pagos vencen al principio del mismo. Si se omite, se supone que es DueDate.EndOfPeriod.

  • Guess
    Opcional. Rate devuelve Double, que especifica el valor calculado. Si se omite, Guess será 0,1 (10 por ciento).

Excepciones

Tipo de excepción

Número de error

Condición

ArgumentException

NPer

Consulte la columna "Número de error" si está actualizando aplicaciones de Visual Basic 6.0 que utilizan el control de errores no estructurado. (Se puede comparar el número de error con respecto a Number (Propiedad, objeto Err)). Sin embargo, siempre que sea posible, se debe considerar la sustitución de dicho control de errores por Información general sobre el control estructurado de excepciones de Visual Basic.

Comentarios

Una anualidad es una serie de pagos fijos en efectivo realizados a lo largo de un período de tiempo. Puede ser un préstamo (como la hipoteca de un inmueble, por ejemplo) o una inversión (como un plan de ahorro mensual).

Para todos los argumentos, el efectivo abonado (como depósitos de ahorro) se representa con números negativos; y el recibido (como cheques de dividendos), con números positivos.

Rate se calcula por iteración. Comenzando con el valor de Guess, Rate, realiza un cálculo cíclico hasta que el resultado tiene una precisión del 0,00001 por ciento. Si Rate no puede encontrar un resultado después de 20 intentos, se produce un error. Si se comienza por el 10 por ciento y Rate produce un error, pruebe con un valor distinto para Guess.

Ejemplo

En este ejemplo, se utiliza la función Rate para calcular el tipo de interés de un préstamo, dados el número total de pagos (TotPmts), la cantidad del pago del préstamo (Payment), el valor actual o principal del préstamo (PVal), el valor futuro del préstamo (FVal), un número que indica si el pago vence al principio o al final del período de pago (PayType) y una aproximación del tipo de interés previsto (Guess).

Sub TestRate()
    Dim PVal, Payment, TotPmts, APR As Double
    Dim PayType As DueDate

    ' Define percentage format.
    Dim Fmt As String = "##0.00"
    Dim Response As MsgBoxResult
    ' Usually 0 for a loan.
    Dim FVal As Double = 0
    ' Guess of 10 percent.
    Dim Guess As Double = 0.1
    PVal = CDbl(InputBox("How much did you borrow?"))
    Payment = CDbl(InputBox("What's your monthly payment?"))
    TotPmts = CDbl(InputBox("How many monthly payments do you have to make?"))
    Response = MsgBox("Do you make payments at the end of the month?", MsgBoxStyle.YesNo)
    If Response = MsgBoxResult.No Then
        PayType = DueDate.BegOfPeriod
    Else
        PayType = DueDate.EndOfPeriod
    End If
    APR = (Rate(TotPmts, -Payment, PVal, FVal, PayType, Guess) * 12) * 100

    MsgBox("Your interest rate is " & Format(CInt(APR), Fmt) & " percent.")
End Sub

Requisitos

Espacio de nombres:Microsoft.VisualBasic

**Módulo:**Financial

**Ensamblado:**Visual Basic Runtime Library (en Microsoft.VisualBasic.dll)

Vea también

Referencia

Resumen financiero

ArgumentException