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 |
---|---|---|
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)