将公式转换为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函数的括号。对,我也混淆了括号。现在应该是正确的