Financial.Rate(Double, Double, Double, Double, DueDate, Double) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
投資期間を通じての利率を指定する値を返します。
public static double Rate (double NPer, double Pmt, double PV, double FV = 0, Microsoft.VisualBasic.DueDate Due = Microsoft.VisualBasic.DueDate.EndOfPeriod, double Guess = 0.1);
static member Rate : double * double * double * double * Microsoft.VisualBasic.DueDate * double -> double
Public Function Rate (NPer As Double, Pmt As Double, PV As Double, Optional FV As Double = 0, Optional Due As DueDate = Microsoft.VisualBasic.DueDate.EndOfPeriod, Optional Guess As Double = 0.1) As Double
パラメーター
- NPer
- Double
必須です。 投資期間全体での支払い回数の合計です。 たとえば、4 年間、月々分割払い自動車ローンを利用した場合、合計で 4 × 12 (= 48) の返済期間があることになります。
- Pmt
- Double
必須です。 毎回の支払い額です。 通常、支払い額には元金と利息が含まれます。支払い額を投資期間内に変更することはできません。
- PV
- Double
必須です。 現在の投資額、つまり将来行われる一連の支払いや受け取りを現時点で一括した場合の合計金額です。 たとえば、自動車を購入するために資金を借り入れた場合、ローン金額は、毎月の返済の対象となる貸手にとっての現在価値を表します。
- FV
- Double
省略可能。 投資の将来価値、つまり最後の支払いを行った後に残る現金の収支です。 たとえば、ローンの将来価値は 0 です。最終支払い後の価値であるためです。 ただし、子供の教育費のため、18 年間かけて 50 万円を貯金する場合、この 50 万円は将来価値になります。 省略した場合は、0 と見なされます。
- Due
- DueDate
省略可能。 支払い期日を示すオブジェクト型 DueDate の値。 各期の期末に支払う場合は DueDate.EndOfPeriod
を、各期の期首に支払う場合は DueDate.BegOfPeriod
をそれぞれ引数に指定します。 省略した場合は、DueDate.EndOfPeriod
と想定されます。
- Guess
- Double
省略可能。 Rate
によって返される推定値です。 省略した場合、Guess
に 0.1 (10%) を指定したものと見なされます。
戻り値
投資期間を通じての利率です。
例外
NPer
<= 0 です。
例
この例では、 関数をRate
使用して、支払いの合計数 ()、ローンの支払額 (TotPmts
)、ローンの現在価値または元金 (Payment
)、ローンの将来価値 (PVal
FVal
)、支払い期間の開始時または終了時に支払い期限を示す数値 (PayType
) を指定して、ローンの利率を計算します。 予想金利の近似値 (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
注釈
年金とは、一定期間に行われた一連の固定現金支払いです。 年金は、ローン (住宅ローンなど) または投資 (毎月の節約プランなど) です。
すべての引数について、支払われた現金 (預金から預貯金など) は負の数で表されます。受け取った現金 (配当チェックなど) は正の数値で表されます。
Rate
はイテレーションによって計算されます。 の値Guess
Rate
から始めて、結果が 0.00001% 以内に正確になるまで計算を繰り返します。 20 回試行した後に結果が見つからない場合 Rate
は失敗します。 推測が 10% Rate
で失敗した場合は、 に別 Guess
の値を試してください。
適用対象
こちらもご覧ください
.NET