气球贷计算器
/*** 氣球貨計算器* author:luozihua * data:2011-8-29 13:57:22 房貸計算器*/
// 注冊命名空間calculator.CALCULATE
Namespace.register("calculator.houseLoan");
//在calculator.GEA命名空間里面聲明類Person
calculator.houseLoan.Person = function(name, age)
{this.name = name;this.age = age;
}
//給類Person添加一個公共方法loanCalc()
calculator.houseLoan.Person.prototype.loanCalc = function()
{// 獲取還款方式并計算var loanMethod = parseInt($("#loanMethod").val()); // 還款方式if (calculator.houseLoan.Person.prototype.validateCheck()) {switch (loanMethod) {case 1:calculator.houseLoan.Person.prototype.loanCalc1();break;case 2:calculator.houseLoan.Person.prototype.loanCalc2();break;}}
}//等額本息
calculator.houseLoan.Person.prototype.loanCalc1 = function()
{var P = parseFloat($("#totalLoan").val()) * 10000; // 貸款金額(元)var Y = parseFloat($("#loanYear").val()); // 貸款年限var F = parseFloat($("#loanMethod").val()); // 還款方式var G = parseFloat($("#loanRate").val()); // 還款方式 // 年貸款利率var Z = parseFloat($("#periodMonthNum").val()); // 還款周期(月、季、半年、年)var H = calculator.houseLoan.Person.prototype.getRate(); // 浮動比率var T = parseFloat((Y * 12) / Z).toFixed(2); // 還款周期數(月)var HY = Math.round(G * (1 + H / 100.0) * 10000) / 10000; // 利率年浮動比率var I = HY * Z / 12 / 100.0; // 還款周期利率var S = P; // 上期還款后剩余本金var Q = parseFloat($("#forecastLoanYear").val()); // 預計還款日期var Interest = 0; // 支付息款var CLoan = 0; // 本期還款額var CInterest = 0; // 本期應還利息var CorpusPay = 0; // 本期還款本金var html = "<table style=\"float:left;width:480px;\" height=\"\" class=\"DataList MarginTop0\" cellspacing=\"0\" cellpadding=\"0\">";html1 = "<tr style=\"height:0\"><th style=\"width:60px;text-align:center\">還款期次</th><th style=\"width:80px;text-align:center\">償還本金</th><th style=\"width:80px;text-align:center\">償還利息</th><th style=\"width:80px;text-align:center\">償還本息</th><th style=\"width:80px;text-align:center\">剩余本金</th></tr>";// 第1---(T-1)期for ( var i = 1; i < T; i++) {var itemStyle;var residueP = 0;CInterest = parseFloat((S * I * 100) / 100).toFixed(2); // 本期應還利息,// 小數點保留2位CLoan = parseFloat((P * I * 100 / (1 - Math.pow(1 + I, -Q))) / 100.0).toFixed(2); // 本期還款額,(1+I)的-Q次冪運算,四舍五入,小數點保留2位CorpusPay = parseFloat((CLoan - CInterest) * 100 / 100).toFixed(2); // 本期還款本金,四舍五入,小數點保留2位S = parseFloat(((S - CorpusPay) * 100) / 100).toFixed(2); // 本期還款后剩余本金,四舍五入,小數點保留2位if (i % 2 == 0) {itemStyle = "Item";} else {itemStyle = "Item";}html1 = html1 + "<tr class=" + itemStyle + "><td align='center' width='60'>" + i + "</td><td align='center' width='80'>"+ CorpusPay + "</td><td align='center' width='80'>" + CInterest + "</td><td align='center' width='80'>" + CLoan+ "</td><td align='center' width='80'>" + S + "</td></tr>";Interest = parseFloat(parseFloat(Interest) + parseFloat(CInterest)).toFixed(2);}var totalPay = CLoan * (parseInt(T) - 1);// 第T期CInterest = parseFloat((S * I * 100) / 100).toFixed(2); // 本期應還利息, 小數點保留2位CorpusPay = S; // 本期還款本金,四舍五入,小數點保留2位CLoan = (parseFloat(CorpusPay) + parseFloat(CInterest)).toFixed(2); // 本期還款額S = 0.00; // 本期還款后剩余本金,四舍五入,小數點保留2位if (i % 2 == 0) {itemStyle = "Item";} else {itemStyle = "Item";}html1 = html1 + "<tr class=" + itemStyle + "><td align='center' width='60'>" + parseInt(T)+ "</td><td align='center' width='80'>" + CorpusPay + "</td><td align='center' width='80'>" + CInterest + "</td><td align='center' width='80'>"+ CLoan + "</td><td align='center' width='80'>" + S + "</td></tr>";html = html + html1 + "</table>";$("#loanPlanDetail").html(html);totalPay = (parseFloat(totalPay) + parseFloat(CLoan)).toFixed(2);Interest = parseFloat(parseFloat(Interest) + parseFloat(CInterest)).toFixed(2);$("#totalPay").val(totalPay);$("#totalInterest").val(Interest);if (parseInt($("#floatRateFlag").val()) != 0) {$("#floatedYearRateLabel").css("display", "");$("#floatedYearRateData").css("display", "");$("#floatedYearRate").val(HY);} else {$("#floatedYearRateLabel").css("display", "none");$("#floatedYearRateData").css("display", "none");$("#floatedYearRate").val("");}$("#interestLabel").css("display", "none");$("#interestData").css("display", "none");$("#interest").html("");
}//給類Person添加一個公共方法loanCalc2() 等額本金
calculator.houseLoan.Person.prototype.loanCalc2 = function()
{var P = parseFloat($("#totalLoan").val()) * 10000; // 貸款金額var Y = parseFloat($("#loanYear").val()); // 貸款年限var F = parseFloat($("#loanMethod").val()); // 還款方式var G = parseFloat($("#loanRate").val()); // 年貸款利率var Z = parseFloat($("#periodMonthNum").val()); // 還款周期(月、季、半年、年)var H = calculator.houseLoan.Person.prototype.getRate(); // 浮動比率var T = parseFloat((Y * 12) / Z).toFixed(2); // 還款周期數(月)var HY = Math.round(G * (1 + H / 100.0) * 10000) / 10000; // 利率年浮動比率var I = HY * Z / 12 / 100.0; // 還款周期利率var S = P; // 上期還款后剩余本金var Q = parseFloat($("#forecastLoanYear").val()); // 預計還款日期var Interest = 0; // 支付息款var CLoan = 0; // 本期還款額var CInterest = 0; // 本期應還利息var CorpusPay = 0; // 本期還款本金var totalPay = 0; // 累計還款總額var html = "<table style=\"float:left;width:480px;\" height=\"\" class=\"DataList MarginTop0\" cellspacing=\"0\" cellpadding=\"0\">";html1 = "<tr style=\"height:0\"><th style=\"width:60px;text-align:center\">還款期次</th><th style=\"width:80px;text-align:center\">償還本金</th><th style=\"width:80px;text-align:center\">償還利息</th><th style=\"width:80px;text-align:center\">償還本息</th><th style=\"width:80px;text-align:center\">剩余本金</th></tr>";// 第1---(T-1)期for ( var i = 1; i < T; i++) {var itemStyle;var residueP = 0;CInterest = parseFloat((S * I * 100) / 100).toFixed(2); // 本期應還利息,// 小數點保留2位CorpusPay = parseFloat((P * 1.0 / Q * 100) / 100).toFixed(2); // 本期還款本金,四舍五入,小數點保留2位CLoan = parseFloat((parseFloat(CorpusPay) + parseFloat(CInterest)) * 100 / 100).toFixed(2); // 本期還款額,四舍五入,小數點保留2位S = parseFloat(((S - CorpusPay) * 100) / 100).toFixed(2); // 本期還款后剩余本金,四舍五入,小數點保留2位if (i % 2 == 0) {itemStyle = "Item";} else {itemStyle = "Item";}html1 = html1 + "<tr class=" + itemStyle + "><td align='center' width='60'>" + i + "</td><td align='center' width='80'>"+ CorpusPay + "</td><td align='center' width='80'>" + CInterest + "</td><td align='center' width='80'>" + CLoan+ "</td><td align='center' width='80'>" + S + "</td></tr>";Interest = parseFloat(parseFloat(Interest) + parseFloat(CInterest)).toFixed(2);}totalPay = CLoan * (parseInt(T) - 1);// 第T期CInterest = parseFloat((S * I * 100) / 100).toFixed(2); // 本期應還利息, 小數點保留2位CorpusPay = S; // 本期還款本金,四舍五入,小數點保留2位CLoan = (parseFloat(CorpusPay) + parseFloat(CInterest)).toFixed(2); // 本期還款額S = 0.00; // 本期還款后剩余本金,四舍五入,小數點保留2位if (i % 2 == 0) {itemStyle = "Item";} else {itemStyle = "Item";}html1 = html1 + "<tr class=" + itemStyle + "><td align='center' width='60'>" + parseInt(T)+ "</td><td align='center' width='80'>" + CorpusPay + "</td><td align='center' width='80'>" + CInterest + "</td><td align='center' width='80'>"+ CLoan + "</td><td align='center' width='80'>" + S + "</td></tr>";html = html + html1 + "</table>";$("#loanPlanDetail").html(html);totalPay = (parseFloat(totalPay) + parseFloat(CLoan)).toFixed(2);Interest = parseFloat(parseFloat(Interest) + parseFloat(CInterest)).toFixed(2);$("#totalPay").val(totalPay);$("#totalInterest").val(Interest);if (parseInt($("#floatRateFlag").val()) != 0) {$("#floatedYearRateLabel").css("display", "");$("#floatedYearRateData").css("display", "");$("#floatedYearRate").val(HY);} else {$("#floatedYearRateLabel").css("display", "none");$("#floatedYearRateData").css("display", "none");$("#floatedYearRate").val("");}$("#interestLabel").css("display", "none");$("#interestData").css("display", "none");$("#interest").html("");
}
//控制浮動
calculator.houseLoan.Person.prototype.selectChange = function(id)
{var isShow = $("#" + id).val();if (isShow == "0") {$("#floatRateArea").css("display", "none");} else {$("#floatRateArea").css("display", "");}
}
//驗證浮動比率
calculator.houseLoan.Person.prototype.getRate = function()
{var isShow = parseInt($("#floatRateFlag").val());if (isShow == 0) {return 0;} else {if (!$("#txtFloatRate").val()) {alert("浮動比率不能為空!");return;}return parseFloat($("#txtFloatRate").val()) * isShow;}
}
calculator.houseLoan.Person.prototype.validateCheck = function()
{if ($("#totalLoan").val() == "" || !$("#totalLoan").val()) {alert("貸款金額不能為空!");return false;}if ($("#loanYear").val() == "" || !$("#loanYear").val()) {alert("貸款年限不能為空!");return false;}if ($("#loanRate").val() == "" || !$("#loanRate").val()) {alert("年貸款利率不能為空!");return false;}if ($("#forecastLoanYear").val() == "" || !$("#forecastLoanYear").val()) {alert("設定還款期限不能為空!");return false;} else {if (parseFloat($("#forecastLoanYear").val()) < parseFloat($("#loanYear").val()) * 12) {alert("設定還款期限不能小于貸款年限!");return false;}if (parseFloat($("#forecastLoanYear").val()) > 360) {alert("設定還款期限不能大于360!");return false;}}return true;
}
總結
- 上一篇: python笔记(摘抄廖雪峰python
- 下一篇: java基于微信小程序面向科研项目申报小