我正在尝试建立一个“我能买多少车”计算器,该计算器接受三个参数:月还款,利率和贷款期限。然后计算这三个值,以根据输入的数据向用户提供他们可以负担的汽车价值。然后给出以下公式:

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在加到幂的括号之外。

10-05 22:32