私はjavascriptでIRR関数を使用して、独自のIRR関数を使用してExcelで実行される計算を作成しています。問題は私のものが少しずれていることであり、私には理由がわかりません。以下のコードがあります。
var IRRval = [];
IRRval.push(-financed);
for (i = 0; i < period; i++) {
IRRval.push(rental);
}
var IRR = IRRCalc(IRRval, 0.001) * 0.01;
function IRRCalc(CArray, guest) {
inc = 0.000001;
do {
guest += inc;
NPV = 0;
for (var j=0; j < CArray.length; j++) {
NPV += CArray[j] / Math.pow((1 + guest), j);
}
} while (NPV > 0);
return guest * 100;
}
これらの数字を使用する場合:
期間24
22000年融資
レンタル1017.5000
私の結果は:0.008523000000000175
Excelの結果は次のとおりです:0.008522918
また
期間42
融資218000
レンタル5917.1429
私の結果は:0.006247000000000489
Excelの結果は次のとおりです:0.00624616
Excel関数が呼び出されます:=IRR(T12:T73,0.01)
T12-T73は私が使用しているのと同じ図です。
助けていただければ幸いです、ありがとうジェイソン
アップデート
以下の値を変更して解決しました。しかし、今ではパフォーマンスが遅すぎます。これを改善する方法について何かアイデアはありますか?
IRRCalc(IRRval, 0.001)
//to
IRRCalc(IRRval, 0.0001)
inc = 0.000001;
//to
inc = 0.00000001;