繁体   English   中英

JavaScript中的年金摊销表

[英]Annuity amortization table in JavaScript

我需要一个函数来帮助您,该函数可以计算按揭年金摊销表,其输出以cols为单位,按月,以下链接所示按月排序的付款金额,本金付款,利息付款等行: 输出示例

输出文件格式应为.cvs。 目前,我被这个女巫困住了,离结果还差得远:

 var i = 5/100; var loanAmount = 15000; var m = 12; var monthlyPayment = loanAmount*(i/12)*Math.pow((1+i/12), m) / (Math.pow((1+i/12), m)-1) var currentBalance = loanAmount; var paymentCounter = 1; var totalInterest = 0; monthlyPayment = monthlyPayment; while(currentBalance > 0) { //this calculates the portion of your monthly payment that goes towards interest towardsInterest = (i/12)*currentBalance; if (monthlyPayment > currentBalance){ monthlyPayment = currentBalance + towardsInterest; } towardsBalance = monthlyPayment - towardsInterest; totalInterest = totalInterest + towardsInterest; currentBalance = currentBalance - towardsBalance; } 

非常感谢您提供任何帮助。

尝试这样的事情:

const annuity = (C, i, n) => C * (i/(1-(1+i)**(-n)));

const balance_t = (C, i, P) => {
  const period_movements = {
    base: C
  }
  period_movements.interest = C*i;
  period_movements.amortization = P - (C*i);
  period_movements.annuity = P;
  period_movements.final_value = Math.round((C - period_movements.amortization)*100)/100;

  return period_movements;
}

const display_mortgage = (C, i, n) => {
  const payements = annuity(C, i, n);
  let movements = balance_t(C, i, payements);
  while (movements.final_value>-.01){
    console.log(movements);
    movements = balance_t(movements.final_value, i, payements);
  }
}

display_mortgage(20000, 0.05, 4);

输出:

{ base: 20000,
  interest: 1000,
  amortization: 4640.236652069255,
  annuity: 5640.236652069255,
  final_value: 15360 }
{ base: 15360,
  interest: 768,
  amortization: 4872.236652069255,
  annuity: 5640.236652069255,
  final_value: 10488 }
{ base: 10488,
  interest: 524.4,
  amortization: 5115.836652069255,
  annuity: 5640.236652069255,
  final_value: 5372 }
{ base: 5372,
  interest: 268.6,
  amortization: 5371.6366520692545,
  annuity: 5640.236652069255,
  final_value: 0 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM