JQuery利率计算器的困境
我使用了一个滑动计算器,它基本上是用来帮助用户计算出贷款的利息百分比。经过多次的挠头,我把原来的工作做得很好,这是经过计算的,但我一定是侥幸成功了。我需要它来计算利率或199.9% 有什么帮助吗JQuery利率计算器的困境,jquery,Jquery,我使用了一个滑动计算器,它基本上是用来帮助用户计算出贷款的利息百分比。经过多次的挠头,我把原来的工作做得很好,这是经过计算的,但我一定是侥幸成功了。我需要它来计算利率或199.9% 有什么帮助吗 $(function () { //First Calculator Slider $("#slider_low").slider({ range: "min", value: 1000, min: 500, max: 5000, step: 500, s
$(function () {
//First Calculator Slider
$("#slider_low").slider({
range: "min",
value: 1000,
min: 500,
max: 5000,
step: 500,
slide: function (event, ui) {
$("#span_amount").html("£ " + ui.value);
$("#hdn_span_amount").val(ui.value);
total();
}
});
$("#span_amount").html("£ " + $("#slider_low").slider("value"));
$("#hdn_span_amount").val($("#slider_low").slider("value"));
//End First Calculator Slider
//Go by Month
$("#slider_low_secondary").slider({
range: "min",
value: 12,
min: 3,
max: 36,
step: 3,
slide: function (event, ui) {
$("#months").html(ui.value + " Months");
$("#hdn_span_month").val(ui.value);
total();
}
});
$("#months").html($("#slider_low_secondary").slider("value") + " Months");
$("#hdn_span_month").val($("#slider_low_secondary").slider("value"));
//End Go by Month
total();
//Total
function total() {
var amountval = $("#hdn_span_amount").val();
var monthVal = $("#hdn_span_month").val();
var interestRate = 0.108;
var setupfee = 69;
var interest = parseInt(monthVal * amountval * interestRate);
//$('#interest').html('�' + interest);
var totel = parseInt(amountval) + parseInt(interest) + parseInt(setupfee);
totel = parseInt(totel / monthVal);
$('#total_amount').html("£ " + (totel.toFixed(0)));
$('#hdn_total_amount').val((totel.toFixed(0)));
}
//End Total
});
看起来你在问如何计算利率?公式是 i=n(eln(R+1)/n-1) 其中i为周期利率,n为周期数,R为实际利率。实际利率为: R=I/L 式中,I为利息支付总额,L为原始贷款价值 您已经计算了
利息
变量中的利息总额,因此实际利率将为
interest/amountVal
var monthlyRate = monthVal * (Math.exp(Math.log(intest/amountval + 1)/monthVal) - 1)
所以你的月利率是
interest/amountVal
var monthlyRate = monthVal * (Math.exp(Math.log(intest/amountval + 1)/monthVal) - 1)
乘以12得到APR
==编辑===
我必须道歉,这不是正确的实际利率。请忽略这个答案,看看我的另一个答案。每个付款期复利一次的贷款当前余额的一般公式是 Ln=Ln-1(1+R)-p
式中,Ln为n次付款后的余额(L0为原始贷款金额),R为每月定期利率,P为每月付款金额 最后一次付款后,余额将为0,因此,如果我们从那里开始,用上面的公式替换所有付款并简化,公式如下 L0(1+R)n-p((1+R)n-1)/R=0 现在,如果你碰巧是一个数学天才,请随意为R解决这个问题。我能想出的最好办法是 R=p/(p-RL0)1/n-1 由于RL0是第一期付款中的利息支付,它必须小于付款金额,因此如果我们从付款金额的一半开始,步长为付款金额的1/4,然后迭代,将估计值向实际值移动一步,每次将步长减半,我们应该能够在十几次迭代中得出一个合理的估计
function calcInterest(loanAmt, monthlyPayment, nPayments) {
var ipmt = monthlyPayment/2;
var newstep = ipmt/2;
var step = 0;
var i = 100; //set this to a suitable value to prevent infinite loops
while (newstep > 0.01 && step != newstep && i > 0) { //decrease 0.01 to increase accuracy
step = newstep;
if ((ipmt/loanAmt) > (Math.pow(monthlyPayment/(monthlyPayment-ipmt),(1/nPayments)) - 1)) {
ipmt += step;
} else {
ipmt -= step;
}
ipmt = Math.round(ipmt*100)/100;
newstep = Math.round(step/2*100)/100;
i--;
}
// this returns the APR
// take off the * 12 if you want the monthly periodic rate
return((Math.pow(monthlyPayment/(monthlyPayment-ipmt),(1/nPayments)) - 1) * 12);
}
在我的测试中,
calcInterest(1000197,12)代码>返回1.9880787972304255,约为198.81%有什么迹象表明它不工作?我们无法为您调试此程序。