国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > WEB開發 > 正文

使用 js 實現 貸款計算器功能

2024-04-27 15:11:39
字體:
來源:轉載
供稿:網友
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body> <table> <tr> <th>Enter Loan Data:</th> <td></td> <th>Loan Balance, Interest Payments</th> </tr> <tr> <td>Amount of Loan ($):</td> <td><input id="amount" onchange="calculate()"/></td> <td rowspan=8> <canvas id='graph' width=400 height=250></canvas> </td> </tr> <tr> <td> Annual interest(%): </td> <td><input id='aipcode (to find lenders): </td> <td><input id='zipcode' onchange="calculate()"/></td> </tr> --> <tr> <td> Approximate payments: </td> <td><button onclick="calculate()">Calculate</button></td> </tr> <tr> <td> Monthly payment: </td> <td>$<span id="payment"></span></td> </tr> <tr> <td> Total payment: </td> <td>$<span id="total"></span></td> </tr> <tr> <td> Total interest: </td> <td>$<span id="totalinterest"></span></td> </tr> <tr> <td></td> <td></td> </tr> <tr> <th> Sponsors: </th> <td colspan=2>Apply for your loan with one of these fine lenders: <div id="lenders"></div> </td> </tr> </table> <script> function calculate(){ // 貸款金額 var amount = document.getElementById('amount'); // 年利息 var apr = document.getElementById('apr'); // 償還周期 var years = document.getElementById('years'); //var zipcode = document.getElementById('zipcode'); // 每月支付 var payment = document.getElementById('payment'); // 總支付 var total = document.getElementById('total'); // 總利息 var totalinterest = document.getElementById('totalinterest'); // amount 貸款總額 var principle = parseFloat(amount.value); // apr 年利率 var interest = parseFloat(apr.value) /100 /12; // 償還周期 月份 var payments = parseFloat(years.value) * 12; // pow 求次冪 var x = Math.pow(1 + interest, payments); // monthly 每月還款金額 var monthly = (principle * x * interest) / (x-1); if(isFinite(monthly)){ payment.innerHTML = monthly.toFixed(2); total.innerHTML = (monthly * payments).toFixed(2); totalinterest.innerHTML = (monthly * payments - principle).toFixed(2); // 保存數據到本地 // save(amount.value, apr.value, years.value, zipcode.value); save(amount.value, apr.value, years.value, ''); // 借貸人省略 // 畫圖 chart(principle, interest, monthly, payments); }else{ payment.innerHTML = ""; total.innerHTML = ""; totalinterest.innerHTML = ""; chart(); } } function save(amount, apr, years, zipcode){ if(window.localStorage){ localStorage.loan_amount = amount; localStorage.loan_apr = apr; localStorage.loan_years = years; localStorage.loan_zipcode = zipcode; } } window.onload = function(){ if(window.localStorage && localStorage.loan_amount){ document.getElementById('amount').value = localStorage.loan_amount; document.getElementById('apr').value = localStorage.loan_apr; document.getElementById('years').value = localStorage.loan_years; //document.getElementById('zipcode').value = localStorage.loan_zipcode; } } function chart(principle, interest, monthly, payments){ var graph = document.getElementById('graph'); graph.width = graph.width; if(!graph.getContext) return; var g = graph.getContext('2d'); var width = graph.width; var height = graph.height; // 畫總利息 function paymentToX(n){ return n * width / payments; } function amountToY(a){ return height - a * height / (monthly * payments * 1.05); } g.moveTo(paymentToX(0), amountToY(0)); g.lineTo(paymentToX(payments), amountToY(monthly * payments)); g.lineTo(paymentToX(payments), amountToY(0)); g.closePath(); g.fillStyle = '#f88'; g.fill(); g.font = "bold 12px '微軟雅黑'"; //g.fillStyle = "yellow"; g.fillText("Total interest payments", 20, 20); // 畫凈值 var equity = 0; g.beginPath(); g.moveTo(paymentToX(0), amountToY(0)); for( var p = 1; p<=payments; p++){ var thisMonthsInterest = (principle - equity) * interest; equity += (monthly - thisMonthsInterest); g.lineTo(paymentToX(p), amountToY(equity)); } g.lineTo(paymentToX(payments), amountToY(0)); g.fillStyle = 'green'; g.fill(); g.fillText('Total Equity', 20, 35); //畫余額 var bal = principle; g.beginPath(); g.moveTo(paymentToX(0), amountToY(bal)); for(var p=1; p<payments;p++){ var thisMonthsInterest = bal*interest; bal-= (monthly - thisMonthsInterest); g.lineTo(paymentToX(p), amountToY(bal)); } g.lineWidth = 3; g.fillStyle='black'; g.stroke(); g.fillText("Loan Balance", 20, 50); //將年度數據在X軸做標記 g.textAlign = 'center'; var y = amountToY(0); for(var year=1; year*12<=payments;year++){ var x = paymentToX(year*12); g.fillRect(x-0.5, y-3, 1, 3); if(year ==1){ g.fillText("Year",x,y-5); } if(year % 5==0 && year*12 !== payments){ g.fillText(String(year),x,y-5); } } //將賠付數額標記在右邊界 g.textAlign = "right"; g.textBaseline = "middle"; var ticks = [monthly*payments, principle]; var rightEdge = paymentToX(payments); for(var i=0;i<ticks.length;i++){ var y = amountToY(ticks[i]); g.fillRect(rightEdge -3, y-0.5,3,1); g.fillText(String(ticks[i].toFixed(0)), rightEdge-5, y); } } </script> </body></html>

示例圖片如下: 這里寫圖片描述

源碼下載地址:js 貸款計算器源碼下載地址


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江华| 鄂伦春自治旗| 安福县| 杨浦区| 白河县| 彝良县| 嘉善县| 玉田县| 大英县| 旺苍县| 翁牛特旗| 新邵县| 灯塔市| 阜南县| 东安县| 建湖县| 迁西县| 潮州市| 宁乡县| 肃南| 重庆市| 贵州省| 富裕县| 丹寨县| 南安市| 鹤山市| 西安市| 翁牛特旗| 泰宁县| 常熟市| 安平县| 沾化县| 博罗县| 榆社县| 乾安县| 凌云县| 拜泉县| 盱眙县| 新巴尔虎左旗| 平凉市| 南涧|