0

nper具体的には、以下の式について、モデルの 1 つの中で名前が付けられたメソッドとして再作成してみました。計算が期待どおりに行われていません (Excel で NPER 関数を使用してテストしています)。メソッドのコーディング方法が原因だと思います。

ここに画像の説明を入力

def nper(rate, pmt, pv, fv = 0, type = 0)
    a = pmt * (1 + rate * type) + (-1 / rate) * fv
    b = pv * rate + pmt * (1 + rate * type)
    c = Math.sqrt(a / b)
    d = Math.sqrt(1 + rate)
    e = (c / d) * 100
end

Math最初に括弧を計算してから、モジュールの平方根関数を使用して残りを計算しようとしました。住宅ローンの期間を計算しようとしています。どこが間違っていますか?

テストするには、次のようにします。

nper(((3.5/100)/12), -561.31, 125000)

利回り: ~360(30 年固定ローン)

は期間あたりrateの利率であるため、利率を 100 で割り、次に 12 で割ります。

4

2 に答える 2

2

を使用するMath.log10()と、次の式は魅力的に機能しました。少し修正して、pmt の負のバージョンを使用し、type と fv (将来の値) を使用できるようにしました。

def nper(rate, pmt, pv, fv = 0, type = 0)
  Math.log10((pmt*(1+rate*type)+(-1/rate)*fv)/(pv*rate+pmt*(1+rate*type))) / Math.log10(1 + rate)
end

参照: MrExcel.com フォーラム スレッド

于 2012-12-23T05:28:41.440 に答える
0

Exonio と呼ばれる gem があります: https://github.com/Noverde/exonioは、以下を含む Excel の財務メソッドの一部を実装していますnper

Exonio.nper(0.07 / 12, -150, 8000) # ==> 64.07334877066185
于 2016-01-26T16:16:05.640 に答える