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