1

簡単なスプレッドシートを Web サイトで使用する HTML フォームに変換するタスクが与えられました。これは、JavaScript を使用していくつかの計算を行う予定です。これは、私が金融機能について何も知らず、FV (Future Value) に出くわしたことを除けば、まったく問題ありません。

これはスプレッドシートです:

B3 = 100
B4 = 10
B5 = B4*12
B6 = 12
B7 = 3
B8 = (1+B6)^(1/12)-1
B9 = ABS(FV(B8,B5,B3/(1+B7),,1)) // and here lies the problem

これは、OO.org のヘルプが FV について述べていることです。

定期的な一定の支払いと一定の利率 (将来価値) に基づいて、投資の将来価値を返します。

構文: FV(レート; 期間数; 支払額; PV (オプション); タイプ)

問題は、上記のパラメータを使用して FV をどのように計算するかです。

サンプル値:

B3 = 100          1        1        2
B4 = 10           1        2        2
B9 = 21,751.06    12.39    26.28    52.55
4

4 に答える 4

15

これは、Javascript の Excel からの正確な FV 式です。金利0%でもOK

function FV(rate, nper, pmt, pv, type) {
  var pow = Math.pow(1 + rate, nper),
     fv;
  if (rate) {
   fv = (pmt*(1+rate*type)*(1-pow)/rate)-pv*pow;
  } else {
   fv = -1 * (pv + pmt * nper);
  }
  return fv.toFixed(2);
}
于 2013-06-19T15:42:30.053 に答える
1

将来価値は、元本に未払いの期間に発生したすべての利息を加えたものです。

あなたの例では、元金は 100 (B3)、期間は 10 年 (120 か月 -- B5)、利率は B8 です。B6 が 0.12 または 12% に等しくないことは確かですか? これは、年利 12%、または月あたり約 1% になります (年利 12% になる月利の実際の式は、1.12 ^ (1/12) - 1 です)。

将来価値は単純に元本倍 (1 + 金利) ^ 時間、またはこの場合はおよそ 100*(1.01)^120 です。

于 2009-11-23T03:29:49.340 に答える
0

参考になる計算機はこちらです。

Javascript ソースに移動すると、将来の価値を計算する式が次のようになっていることがわかります。

function checkNumber(input, min, max, msg)

{

    msg = msg + " field has invalid data: " + input.value;



    var str = input.value;

    for (var i = 0; i < str.length; i++) {

        var ch = str.substring(i, i + 1)

        if ((ch < "0" || "9" < ch) && ch != '.') {

            alert(msg);

            return false;

        }

    }

    var num = 0 + str

    if (num < min || max < num) {

        alert(msg + " not in range [" + min + ".." + max + "]");

        return false;

    }

    input.value = str;

    return true;

}



function computeField(input)

{

    if (input.value != null && input.value.length != 0)

        input.value = "" + eval(input.value);

    computeForm(input.form);

}



function computeForm(form)

{

    if ((form.payments.value == null || form.payments.value.length == 0) ||

        (form.interest.value == null || form.interest.value.length == 0) ||

        (form.principal.value == null || form.principal.value.length == 0)) {

        return;

    }



    if (!checkNumber(form.payments, 1, 480, "# of payments") ||

        !checkNumber(form.interest, .001, 99, "Interest") ||

        !checkNumber(form.principal, 1, 10000000, "Principal")) {

        form.fv.value = "Invalid";

        return;

    }



    var i = form.interest.value;

    if (i > 1.0) {

        i = i / 100.0;

        form.interest.value = i;

    }

    i /= 12;


   var pow = form.principal.value;

    for (var j = 0; j < form.payments.value *12; j++)

        pow = (pow * i) + (pow *1);

    form.fv.value = pow

        form.totalint.value = (form.fv.value - form.principal.value)

}
于 2009-11-23T01:10:48.403 に答える
-2

Excel を Web に移行するのは難しいでしょう。
代わりに、Google ドキュメントの使用を検討することをお勧めします。

ただし、この特定のスプレッドシートのみが必要な場合は、このページで式を説明します. さらに、 Compound Interest Wiki ページ
で情報を見つけることができます。

于 2009-11-23T01:21:05.573 に答える