将数学公式转换为javascript
我需要帮助将贷款余额公式转换为JavaScript我添加了 这就是我目前的情况,但我一直得到错误的答案将数学公式转换为javascript,javascript,math,translate,Javascript,Math,Translate,我需要帮助将贷款余额公式转换为JavaScript我添加了 这就是我目前的情况,但我一直得到错误的答案 var loanBalance = a * Math.pow((1 + r), n) - p * ((Math.pow((1 + r), n) - 1) / r); 我的计算器有四个功能,但只有这一个给了我错误的答案,正如你所看到的,我对这一切都是新手,提前谢谢 以下是我遇到问题的函数: function doBalance() { var principa
var loanBalance = a * Math.pow((1 + r), n) - p * ((Math.pow((1 + r), n) - 1) / r);
我的计算器有四个功能,但只有这一个给了我错误的答案,正如你所看到的,我对这一切都是新手,提前谢谢
以下是我遇到问题的函数:
function doBalance() {
var principal = parseFloat(document.getElementById("borrowedBox").value);
var annualRate = parseFloat(document.getElementById("rateBox").value);
var years = parseFloat(document.getElementById("yearsBox").value);
var periodsPerYear = parseFloat(document.getElementById("paymentBox").value);
var numberOfPaymentsPaidToDate = parseFloat(document.getElementById("toDatePymtsBox").value);
var result = 0;
result = computeBalance(principal, annualRate, years, periodsPerYear, numberOfPaymentsPaidToDate);
document.getElementById("outputDiv2").innerHTML = "$" + result;
}
function computeBalance(principal, annualRate, years, periodsPerYear, numberOfPaymentsPaidToDate) {
var a = principal;
var r = annualRate/periodsPerYear;
var p = periodsPerYear*years;
var n = numberOfPaymentsPaidToDate;
var loanBalance = (a * (Math.pow((1 + r), n))) -( (p * (Math.pow((1 + r), n) - 1)) / r);
return loanBalance.toFixed(2);
}
答案应该是54306.40
以下是我正在使用的值:
我想你的括号有点偏了:
var loanBalance = a * Math.pow((1 + r), n) - (p * ((Math.pow((1 + r), n) - 1)) / r);
拆分公式
function loanBalancer(r,n,p,a){
var powerfn = Math.pow((1+r), n);
var firstprt = a * powerfn;
var num = p(powerfn - 1);
var den = r;
return firstprt - (num/den)
}
首先,需要正确放置支架
var loanBalance = (a * (Math.pow((1 + r), n))) -( (p * (Math.pow((1 + r), n) - 1)) / r);
由于我们已经解决了您编写的代码行为正确并产生正确结果的问题,因此我将给出一个小建议。应用一些代数来减少表达式,以获得:
b = (((1+r)^n)(ra-p) + p)/r
在代码中
b = (Math.pow(1+r, n)(r*a - p) + p)/r;
这将减少您的计算量:)乍一看,您似乎已经正确创建了函数。。。是不是很多?你能提供一些样本输入输出吗??比如提供什么和期望什么答案你从哪里得到的公式?可能是错误的,或者您输入的是错误的。我添加了一个给我带来麻烦的函数,答案应该是54306.40,每次我更改括号时,它都会给我其他东西。@JaromandaX我开始认为这可能是正确的答案,我就是搞不懂。这和原来的问题给出了相同的答案。你认为它有什么帮助?这给出了与原始问题相同的答案。你认为它有什么帮助?你添加的括号没有任何区别。乘法和除法优先于加法和减法,因此,即使括号不存在,也会在减法之前对括号中的部分进行求值。这给出了与原始问题相同的答案。你认为它有什么帮助?额外的括号对值的评估顺序没有影响。即使OP的括号也比需要的多。好的,如果您认为它不起作用,请为我提供正确的输出和一些变量的输入值。