Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将公式转换为JavaScript_Javascript_Angularjs_Ecmascript 5 - Fatal编程技术网

将公式转换为JavaScript

将公式转换为JavaScript,javascript,angularjs,ecmascript-5,Javascript,Angularjs,Ecmascript 5,我正试图构建一个“我能买多少车”的计算器,它包含三个参数:月付款、利率和贷款期限。然后计算这三个值,并根据输入的数据向用户提供他们能够负担得起的汽车值。当时我得到了以下公式: CarValue = (MONTHLY PAYMENT * (1-(1+(INTEREST RATE / 12)) ^ -TERM)) / (RATE / 12) 使用ECMAScript 5,我正在尝试将此公式转换为JavaScript,它会给我大量的结果: var monthlyPayment = $scope.mo

我正试图构建一个“我能买多少车”的计算器,它包含三个参数:月付款、利率和贷款期限。然后计算这三个值,并根据输入的数据向用户提供他们能够负担得起的汽车值。当时我得到了以下公式:

CarValue = (MONTHLY PAYMENT * (1-(1+(INTEREST RATE / 12)) ^ -TERM)) / (RATE / 12)
使用ECMAScript 5,我正在尝试将此公式转换为JavaScript,它会给我大量的结果:

var monthlyPayment = $scope.model.howMuchCanIAfford.monthlyPayment;
var interestRate = $scope.model.howMuchCanIAfford.interestRate;
var loanLength = $scope.model.howMuchCanIAfford.loanLength;

var monthlyAmount = (monthlyPayment * (Math.pow(1-((1+(interestRate / 12))), (-1 * loanLength)))) / (interestRate / 12);
示例数据:

monthlyPayment = 700
interestRate = 9.2
loanLength = 84

output: $4,503,380,362,412.83
很明显,输出量相差甚远,我不确定我的公式转换是否是问题所在,或者我得到的原始公式是错误的。

应该是:

var monthlyAmount = (monthlyPayment * ( 1- Math.pow( (1+(interestRate / 12)), (-1 * loanLength) ))) / (interestRate / 12); 

在原始的公式中,-1位于提升到幂的括号之外。

您可以使用Javascript中的公式,只需将
^
替换为
**
。。。并且确保所有的输入都是数字。是的,我没有使用javascript 6,所以我不能使用**我想你只需要注意单位……假设利率是一个比例,即如果用户选择9.2%,你想使用0.092,考虑到运算符的优先级。减号是在指数幂之后计算的,你确定吗?您正在关闭没有指数的Math.pow函数的括号。对,我也混淆了括号。现在应该是正确的