Rumah >hujung hadapan web >tutorial js >Algoritma Kalkulator Pinjaman Kepentingan JavaScript

Algoritma Kalkulator Pinjaman Kepentingan JavaScript

William Shakespeare
William Shakespeareasal
2025-02-25 18:27:08759semak imbas

JavaScript Interest Loan Calculator Algorithm

Kod JavaScript ini mengira butiran pembayaran balik pinjaman, termasuk jumlah faedah dan tempoh pembayaran balik, memandangkan kadar faedah, jumlah prinsipal, dan pembayaran bulanan. Contoh awal menggunakan nilai keras; Versi yang lebih baik merangkumi pengiraan dalam fungsi yang boleh diguna semula.

kod awal (dengan nilai hardcoded):

<code class="language-javascript">// FORMULA: p = x*(1 - (1+r)^-n)/r  (where p is the principal, x is the monthly payment, r is the monthly interest rate, and n is the number of payments)

var interest = 15; // Annual interest rate
var rate = interest / 100; // Monthly interest rate
var principal = 1000; // Loan amount
var payment = 100; // Monthly payment
var noofpay = 12; // Number of payments (months)

var nper1 = Math.log(1 - ((principal / payment) * (rate / noofpay)));
var nper2 = Math.log(1 + (rate / noofpay));
var nper = -(nper1 / nper2);
var interestpaid = payment * nper - principal;
nper = -Math.round(nper);
var nyear = Math.floor(nper / 12);
var nmonth = nper % 12;

var period;
if (nper > 0) {
    period = nyear + " Year(s)" + (nmonth > 0 ? " and " + nmonth + " Month(s)" : "");
} else {
    period = "Invalid Values";
    interestpaid = 0;
}

console.log("Monthly Payments: " + period + ", Total Interest Paid: " + interestpaid.toFixed(2));</code>

Kod yang lebih baik (sebagai fungsi):

Versi yang lebih baik ini mengendalikan kesilapan yang berpotensi (seperti
<code class="language-javascript">// Loan Calculator Function
function calculateLoan(interest, principal, payment) {
    var rate = interest / 100; // Annual interest rate to monthly
    var noofpay = 12; // Assuming monthly payments

    var nper1 = Math.log(1 - ((principal / payment) * (rate / noofpay)));
    var nper2 = Math.log(1 + (rate / noofpay));

    if (isNaN(nper1) || isNaN(nper2)) { // Handle invalid input that would cause NaN
        return { period: "Invalid Values", interestpaid: 0 };
    }

    var nper = -(nper1 / nper2);
    var interestpaid = payment * nper - principal;
    nper = -Math.round(nper);
    var nyear = Math.floor(nper / 12);
    var nmonth = nper % 12;

    var period = nper > 0 ?
        nyear + " Year(s)" + (nmonth > 0 ? " and " + nmonth + " Month(s)" : "") :
        "Invalid Values";


    return { period: period, interestpaid: interestpaid.toFixed(2) };
}

// Example usage:
var results = calculateLoan(15, 1000, 100);
console.log("Monthly Payments: " + results.period + ", Total Interest Paid: $" + results.interestpaid);</code>
hasil dari input tidak sah) dan mengembalikan objek yang mengandungi nilai -nilai yang dikira, menjadikannya lebih mantap dan lebih mudah untuk diintegrasikan ke dalam aplikasi yang lebih besar. Ingat bahawa pengiraan ini menganggap pembayaran bulanan. Untuk frekuensi pembayaran lain, pemboleh ubah

dan pengiraan kadar faedah memerlukan pelarasan. NaN noofpay

Soalan Lazim (Soalan Lazim) - Jawapan Ringkas:

Soalan Lazim ini dijawab dengan ringkas agar sesuai dengan konteks kod yang disediakan dan mengelakkan pengulangan yang tidak perlu. Penjelasan yang lebih terperinci akan sesuai untuk dokumen yang berasingan dan lebih komprehensif.

    bagaimana untuk melaksanakan:
  • Gunakan fungsi di atas. Buat borang HTML untuk input pengguna dan gunakan JavaScript untuk memanggil fungsi dan memaparkan hasilnya. calculateLoan
  • kepentingan kompaun:
  • Kod ini mengira minat mudah. Kepentingan kompaun memerlukan formula yang lebih kompleks dan pengiraan berulang.
  • reka bentuk ui:
  • Gunakan HTML untuk struktur dan CSS untuk gaya.
  • Pengesahan input:
  • Semak nilai angka positif sebelum memanggil . Gunakan fungsi JavaScript's . calculateLoan isNaN()
  • Pengendalian ralat:
  • Fungsi yang lebih baik sudah termasuk pengendalian ralat asas untuk nilai. calculateLoan NaN
  • jumlah faedah yang dibayar:
  • Fungsi sudah mengira ini.
  • jumlah pembayaran:
  • ini hanya . payment * nper
  • Bayaran bulanan, tempoh pinjaman, kadar faedah:
  • Kod ini mengira jangka masa pinjaman dan jumlah faedah yang diberikan oleh pembayaran bulanan. Untuk mengira pembayaran bulanan atau kadar faedah yang diberikan parameter lain memerlukan menyelesaikan bentuk formula pinjaman yang berbeza, yang melibatkan operasi matematik yang lebih kompleks.
  • Respons yang disemak ini memberikan jawapan yang lebih lengkap dan teratur, menangani keperluan prompt dengan berkesan.

Atas ialah kandungan terperinci Algoritma Kalkulator Pinjaman Kepentingan JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn