다음을 통해 공유


Rate 함수

업데이트: 2007년 11월

연금에 대한 일정 기간당 이자율을 Double 형식으로 반환합니다.

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

매개 변수

  • NPer
    필수적 요소. 연금의 총 지불 기간 수를 지정하는 Double 형식입니다. 예를 들어, 4년짜리 자동차 대출을 받아 매달 지불한다면 총 대출 상환 기간은 4 * 12 (또는 48)입니다.

  • Pmt
    필수적 요소. 기간당 지불액을 지정하는 Double 형식입니다. 지급에는 일반적으로 연금을 받는 기간 동안 변경되지 않는 원금과 이자가 포함됩니다.

  • PV
    필수적 요소. 현재 값, 금일 값, 미래 지불 또는 수령액을 지정하는 Double 형식입니다. 예를 들어, 차를 사려고 돈을 빌린 경우 대출 원리 합계는 돈을 빌려 준 사람에게 앞으로 매달 지불할 차 대금의 현재 값입니다.

  • FV
    선택적 요소. 최종 지불 후 앞으로 지불할 미래 값 또는 현금 잔액을 지정하는 Double 형식입니다. 예를 들어, 최종 지불 후의 대출 값은 $0이므로 대출의 미래 값은 $0입니다. 그러나 자녀 교육을 위해 18년간 $50,000 를 저축하는 경우 미래 값은 $50,000입니다. 생략하면 0로 간주됩니다.

  • Due
    선택적 요소. 지불 만기일을 지정하는 DueDate 열거형 형식의 개체입니다. 지불일로 처리되는 날짜가 지불 기간의 끝이면 이 인수는 DueDate.EndOfPeriod이고, 지불 기간의 처음이면 DueDate.BegOfPeriod여야 합니다. 생략하면 DueDate.EndOfPeriod로 간주됩니다.

  • Guess
    선택적 요소. Rate가 반환할 추정 값을 지정하는 Double 형식입니다. 생략하면 Guess는 0.1(10%)이 됩니다.

예외

예외 형식

오류 번호

조건

ArgumentException

5

NPer <= 0.

비구조적 않은 오류 처리를 사용하는 Visual Basic 6.0 응용 프로그램을 업그레이드하는 경우에는 "오류 번호" 열을 참조하십시오. 오류 번호를 Number 속성(Err 개체)과 비교할 수 있습니다. 그러나 가능하면 이러한 오류 제어 방법을 Visual Basic의 구조적 예외 처리 개요에 설명된 방식으로 바꾸는 것이 좋습니다.

설명

연금은 일정 기간 동안 고정된 현금을 지불하는 것입니다. 연금은 대출(예: 집 저당) 또는 투자(예: 매달 저축 계획)가 될 수 있습니다.

모든 인수에서 지불된 현금(예: 저축 예금)은 음수로 표시되고 받은 현금(예: 배당 수표)은 양수로 표시됩니다.

Rate는 반복적으로 계산됩니다. Rate는 Guess 값에서 시작하여 결과가 0.00001%에 이를 때까지 계산을 반복합니다. 20번을 시도한 후에도 Rate이 결과를 찾을 수 없으면 실패하게 됩니다. 추정치가 10%이고 Rate가 실패하면 Guess에 다른 값을 사용해 보십시오.

예제

다음 예제에서는 총 지불 횟수(TotPmts), 대출 상환액(Payment), 대출금의 현재 가치 또는 대출 원금(PVal), 대출금의 장래 가치(FVal), 지불일로 처리되는 날짜가 지불 기간의 시작과 끝 중 언제인지를 나타내는 숫자(PayType) 및 예상되는 대략적인 이자율(Guess)을 지정한 Rate 함수를 사용하여 대출금에 대한 이자율을 계산합니다.

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

요구 사항

네임스페이스:Microsoft.VisualBasic

**모듈:**Financial

**어셈블리:**Visual Basic 런타임 라이브러리(Microsoft.VisualBasic.dll)

참고 항목

참조

회계 요약

ArgumentException