1

小さな jQuery 金利計算ツールを書きました。

  • 毎月の返済額から与信額を計算している

ライブデモはこちら

問題は、私の利息計算ロジックがまったく間違っていることです。

見てください:

//Get the value - monhtly repayment
var InputedValue = $('form input[name="val1"]').val();

// 12 ,18, 24, 30, 36 - NumberOfMonths
for (var i = 12; i <= 36; i += 12) {

    // j = 20 - Deposit in %
    for (var j = 10; j <= 10; j += 10) {

        // g = 20, 30 - InterestPerYear in %
        for (var g = 10; g <= 10; g += 10) {

            var InScaleOfYear = i / 12;

            // Amount of payment excluding deposit
            var AmountOfPayments = (InputedValue * (i - 1)); // rat bedzie o jedna mniej niz ilosc miesiecy, bo wplata poczatkowa
            // Amount of payment including deposit
            var AmountInTotal = (AmountOfPayments * 100) / (100 - j);

            // Deposit 
            var Deposit = AmountInTotal - AmountOfPayments;

            // Amount of payment in one year 
            var AmountOfPaymentInOneYear = (AmountOfPayments / InScaleOfYear);
            var InterestPerYear = ((AmountOfPaymentInOneYear * g) / 100);

            // Interest in total
            var InterestInTotal = InterestPerYear * InScaleOfYear;

            // Amount of credit
            var AmountOfCredit = (AmountOfPayments + Deposit) - InterestInTotal;

            $('table tbody').append('<tr><td>' 
            + i + '</td><td>' 
            + "at " + j + "% = " + Deposit.toFixed(2) + '</td><td>' 
            + "at " + g + "% = " + InterestPerYear.toFixed(2) + '</td><td>' 
            + "at " + g + "% = " + InterestInTotal.toFixed(2) + '</td><td>' 
            + AmountOfPayments.toFixed(2) + '</td><td>' 
            + AmountInTotal.toFixed(2) + '</td><td>' 
            + AmountOfCredit.toFixed(2) + '</td></tr>');

        }
    }
}

似たようなことに取り組んでいる人はいますか?次の情報を使用して利息を計算するにはどうすればよいですか。

  • 月数/年数 ( i = months)
  • 毎月の支払額 ( $('form input[name="val1"]').val();)
  • 保証金の額 ( j = deposit)
  • 金利 ( g = interest rate)

ご覧のとおり、月/預金/利息のループが設定されています。ループ内の関心を計算するためのログインに少し助けが必要です。

4

5 に答える 5

3

あなたの言い回しは少し混乱しています。しかし、私の理解では、毎月の支払いと金利に基づいて、誰かがどれだけの信用を得ることができるかを把握したいということです. 他の人が指摘しているように、最初に紙の上でこれを行い、利息の種類と複利期間の正しい式があることを確認する必要があります。しかし、それは StackOverflow の目的ではありません。私たちはプログラミングに集中するためにここにいます! そこで、複利で毎月の支払いを伴うクレジット カード スタイルの融資を想定してみましょう (必要に応じて、他の式に書き換えることができます)。

これらの数式についてオンラインで見つけることができる最良のリソースは、次のとおりです。Loan or Investment Formulas . このページには、ほぼすべての変数に対して事前に解決された複合式があります! そのため、大学のビジネス数学クラスのイントロを覚えておく必要はありません。良い。

したがって、正しい数式を JavaScript に変換する必要があります。これは、StackOverflow の視聴者が見たいと思っているものです。私たちの場合、ここで:

  • A = ローン総額
  • P = 月々の支払い額
  • N = 月数
  • i = APR 金利/12

A = (P/i)[1-(1+i)^-N]

  1. では、角括弧を通常の括弧に変更しましょう。A = (P/i)(1-(1+i)^-N)
  2. ここで、JavaScript に最初の項がメソッドであると思わせたくありません。それらを乗算するようにします。それでは、アスタリスクを追加しましょう。A = (P/i) * (1 - (1+i)^-N)
  3. JavaScript はキャレットをビットごとの XOR 演算子と見なすため、累乗には代わりに Math.pow() を使用できます。A = (P/i) * (1 - Math.pow((1+i),(-N))
  4. 終わり!これは JavaScript で機能します。快適な変数名を付けた、人間が読める素敵なサンプルはどうですか?

    var MonthlyPaymentAmount = parseFloat($('#txtMonthlyPayment').val());
    var APR = 16.9 / 100;   //16.9% APR
    var InterestRate = (APR / 12);     //monthly interest
    
    for (var nMonths = 12; nMonths <= 36; nMonths += 12) {
        var TotalAmountOfPayments = nMonths * MonthlyPaymentAmount;
    
        var TotalAmountOfCredit = (MonthlyPaymentAmount / InterestRate) * (1 - Math.pow((1 + InterestRate), (-nMonths)));
    
        var TotalAmountOfInterest = TotalAmountOfPayments - TotalAmountOfCredit;
    
        alert("Total Loan Amount: $" + TotalAmountOfCredit + "Total Paid:" + TotalAmountOfPayments + ", Interest:" + TotalAmountOfInterest);
    }
    

ほら!これにより、毎月の支払い、特定の APR 金利、および 12、24、36 か月の期間に基づいて、利用可能なクレジットの合計が計算されます。これがあなたが考えていた目標と正確に一致しない場合は、数学のチュートリアルを読んで、JavaScript に変換する別の数式を選択してください。

于 2011-11-04T01:59:29.573 に答える
3

主な問題は、微積分以外の方法を使用して微積分の問題を解こうとしているということです。ご存じないかもしれませんが、微積分は本質的に X/0 問題を解こうとする数学の一分野です。複利の場合、貪欲な銀行が利子からできるだけ多くのお金を搾り取ろうとするケースです。

これは毎月の利息として開始されましたが、1 日ごとに請求すれば、より多くの利息を得ることができることに気付きました。これは、1 か月あたり 10% を 1 日あたり 1/3% に分割した場合と同じ利率です。これは、前日の利息が次の利息サイクルの計算の一部 (または複利) であるためです。基本的に「即時の関心」になるまで、時間、分、秒ごとに分割すると、より多くを得ることができます. したがって、複利が生まれます。

(人気と混乱のため、政府は APR という用語を使用して、複利のパーセンテージを、私たち普通の人が関連付けることができる「年率」に変換することを義務付けました。複利。)

複利は X/0 問題ですウィキペディアの複利に関する記事には、複利を計算するための便利な式がいくつか記載されています。ただし、このような数式を使用する際に覚えておくべき重要なことは、APR のようなものを 12 で割って MPR の数値を求めることはできないということです。そうでなければ、複利にはなりませんし、それほど単純ではありません。

于 2011-11-02T22:21:57.623 に答える
2

以下のこのページを試してください。非常に役立つExcelスプレッドシートも含まれています。

http://www.yorku.ca/amarshal/mortgage.htm

頭の中でExcelの計算に従うことができれば、コードを簡単に叩き出すことができます。

「私は数学の学位を取得するために4年間を費やしましたが、教授に私が学んだことは絶対に真実ですが、まったく役に立たないことを教えてもらうためだけでした。」

于 2011-11-02T21:38:25.950 に答える
1

それは、探している興味のタイプ (複合/単純/など) によって異なります。例については、 http ://www.hotscripts.com/search/javascript/interest を参照してください。

于 2011-11-01T20:48:01.280 に答える
0

式を使用する

A=P(1+r/n)^nt

ここで、 A : 利息付きの将来価値 P : 元本 r : 年利 (10 進数) n : なし。1 年あたりの複利回数 t : いいえ。お金が投資された年数

ユーザーから int 値を受け取った後、' r ' 値を 100 で除算して float 値に変換します。四半期ごと、毎月、毎年などの投資の種類を選択するためのラジオ ボタンを提供し、それに応じて if 条件を使用して' n ' 値を設定できます。

そのため、単一の関数を使用してあらゆる種類の利息を計算できます。

于 2016-10-17T20:26:15.510 に答える