Financial.PPmt(Double, Double, Double, Double, Double, DueDate) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zwraca wartość określającą spłatę kapitału dla danego okresu renty na podstawie okresowych stałych płatności i stałej stopy procentowej.
public static double PPmt (double Rate, double Per, double NPer, double PV, double FV = 0, Microsoft.VisualBasic.DueDate Due = Microsoft.VisualBasic.DueDate.EndOfPeriod);
static member PPmt : double * double * double * double * double * Microsoft.VisualBasic.DueDate -> double
Public Function PPmt (Rate As Double, Per As Double, NPer As Double, PV As Double, Optional FV As Double = 0, Optional Due As DueDate = Microsoft.VisualBasic.DueDate.EndOfPeriod) As Double
Parametry
- Rate
- Double
Wymagane. Stopa procentowa na okres. Jeśli na przykład uzyskasz kredyt na samochód o rocznej stopie procentowej (APR) 10 procent i spłacasz ją w miesięcznych ratach, stopa za okres wynosi 0,1/12, czyli 0,0083.
- Per
- Double
Wymagane. Okres płatności w zakresie od 1 do NPer
.
- NPer
- Double
Wymagane. Łączna liczba okresów płatności w rentie. Na przykład w przypadku dokonywania miesięcznych płatności na czteroletnią pożyczkę samochodową pożyczka ma łącznie 4 x 12 (lub 48) okresów płatności.
- PV
- Double
Wymagane. Bieżąca wartość serii przyszłych płatności lub wpływów. Na przykład przy zaciągnięciu kredytu na zakup samochodu kwota kredytu stanowi dla kredytodawcy wartość bieżącą miesięcznych płatności za samochód, których będziesz dokonywać.
- FV
- Double
Opcjonalny. Wartość przyszła lub saldo gotówkowe, które chcesz uzyskać po dokonaniu ostatecznej płatności. Na przykład przyszła wartość kredytu wynosi 0 zł, ponieważ taka będzie jego wartość po ostatniej płatności. Jeśli jednak chcesz zaoszczędzić 50 000 zł przez 18 lat na wykształcenie dziecka, 50 000 zł jest wartością przyszłą. W przypadku pominięcia przyjmowana jest wartość 0.
- Due
- DueDate
Opcjonalny. Obiekt typu DueDate , który określa, kiedy płatności są należne. Ten argument musi być albo DueDate.EndOfPeriod
wtedy, gdy płatności są należne na koniec okresu płatności, lub DueDate.BegOfPeriod
jeśli płatności są należne na początku okresu. W przypadku pominięcia przyjmuje się założenie DueDate.EndOfPeriod
.
Zwraca
Spłata kapitału dla danego okresu renty na podstawie okresowych stałych płatności i stałej stopy procentowej.
Wyjątki
Per
<=0 lub Per
>NPer
.
Przykłady
W tym przykładzie użyto PPmt
funkcji , aby obliczyć, ile płatności dla określonego okresu jest podmiotem zabezpieczeń, gdy wszystkie płatności są równe. Biorąc pod uwagę stopę procentową procentową na okres (APR / 12
), okres płatności, dla którego żądana jest część kapitału (Period
), łączna liczba płatności (TotPmts
), wartość bieżąca lub kapitał pożyczki (), przyszła wartość pożyczki (PVal
FVal
) oraz liczba wskazująca, czy płatność jest należna na początku lub na końcu okresu płatności (PayType
).
Sub TestPPMT()
Dim PVal, APR, TotPmts, Payment, Period, P, I As Double
Dim PayType As DueDate
Dim Msg As String
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?"))
' Ensure proper form.
If APR > 1 Then APR = APR / 100
TotPmts = CDbl(InputBox("How many monthly payments do you have to 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 = Math.Abs(-Pmt(APR / 12, TotPmts, PVal, FVal, PayType))
Msg = "Your monthly payment is " & Format(Payment, Fmt) & ". "
Msg = Msg & "Would you like a breakdown of your principal and "
Msg = Msg & "interest per period?"
' See if chart is desired.
Response = MsgBox(Msg, MsgBoxStyle.YesNo)
If Response <> MsgBoxResult.No Then
If TotPmts > 12 Then MsgBox("Only first year will be shown.")
Msg = "Month Payment Principal Interest" & Environment.NewLine
For Period = 1 To TotPmts
' Show only first 12.
If Period > 12 Then Exit For
P = PPmt(APR / 12, Period, TotPmts, -PVal, FVal, PayType)
' Round principal.
P = (Int((P + 0.005) * 100) / 100)
I = Payment - P
' Round interest.
I = (Int((I + 0.005) * 100) / 100)
Msg = Msg & Period & vbTab & Format(Payment, Fmt)
Msg = Msg & vbTab & Format(P, Fmt) & vbTab & Format(I, Fmt) & Environment.NewLine
Next Period
' Display amortization table.
MsgBox(Msg)
End If
End Sub
Uwagi
Renta to szereg stałych płatności gotówkowych dokonywanych w pewnym okresie. Renta może mieć charakter kredytu/pożyczki (np. kredyt hipoteczny) lub inwestycji (np. miesięczny plan oszczędzania).
Argumenty Rate
i NPer
muszą być obliczane przy użyciu okresów płatności wyrażonych w tych samych jednostkach. Jeśli na przykład Rate
jest obliczana przy użyciu miesięcy, NPer
należy również obliczyć przy użyciu miesięcy.
Dla wszystkich argumentów środki pieniężne wypłacane (takie jak depozyty do oszczędności) są reprezentowane przez liczby ujemne; środki pieniężne otrzymane (takie jak czeki dywidendowe) są reprezentowane przez liczby dodatnie.