当前位置:   article > 正文

js贷款还款计算:等额本金、等额本息、先息后本、等本等息_js 等额本息

js 等额本息

可以输出每种贷款方式还款汇总信息和每一期的还款明细。

网上大多只有一个计算器,或者只计算还款总额,还款方式也不全。

等额本息、等额本金还款方式借用的某位博主的代码,链接找不到了。

  1. // 先息后本
  2. function xxhb(year_lilv, money, month) {
  3. money = money * 10000;
  4. var objArray = new Array();
  5. var interestM = 0; // 月还款额
  6. var interestTotal = 0; // 累计还款总额
  7. var chbj = 0; // 每月偿还本金0 最后一个月偿还全部本金
  8. var lxze = money * year_lilv / 12 * 0.01 * month; // 利息总额
  9. for (var i = 1; i <= month; i++) {
  10. var t1 = lxze / month; //第i月还款利息
  11. interestM = t1; //第i月还款额 = 每月偿还利息 最后一个月还款额 = 每月利息 + 贷款本金
  12. if (i == month) { // 最后一个月
  13. chbj = money; // 
  14. interestM = t1 + money;
  15. }
  16. objArray[i - 1] = new Array();
  17. objArray[i - 1]['qc'] = i; //期次
  18. objArray[i - 1]['chbx'] = (interestM).toFixed(2); //第i个月,偿还本息(元) 月供
  19. objArray[i - 1]['chlx'] = (interestM - chbj).toFixed(2); //第i个月,偿还利息(元)
  20. objArray[i - 1]['chbj'] = (chbj).toFixed(2); //第i个月,偿还本金(元)
  21. objArray[i - 1]['sybj'] = (money - (chbj * i)).toFixed(2); //第i个月,剩余本金(元)
  22. interestTotal = interestTotal + interestM;
  23. }
  24. interestTotal = (Math.round(interestTotal * 100)) / 100; //累计还款总额
  25. var yg = objArray[0]['chbx']; //月供 最高月供
  26. var ljhkze = interestTotal; //累计还款总额
  27. var resArray = new Array();
  28. resArray['list_res'] = new Array(); //列表信息数组
  29. resArray['list_res'] = objArray;
  30. resArray['simp_res'] = new Array(); //基础信息数组
  31. resArray['simp_res']['yg'] = parseFloat(yg).toFixed(0);
  32. resArray['simp_res']['ljhkze'] = parseFloat(ljhkze).toFixed(0);
  33. resArray['simp_res']['lxze'] = parseFloat(lxze).toFixed(0);
  34. return resArray;
  35. }
  1. // 等本等息
  2. function dbdx(year_lilv, money, month) {
  3. money = money * 10000;
  4. var objArray = new Array();
  5. var interestM = 0; // 月还款额
  6. var interestTotal = 0; // 累计还款总额
  7. var chbj = money / month; // 每月偿还本金 = 贷款金额 除以 月份
  8. var lxze = money * year_lilv / 12 * 0.01 * month; // 利息总额
  9. for (var i = 1; i <= month; i++) {
  10. var t1 = lxze / month; //第i月还款利息
  11. interestM = chbj + t1; //第i月还款额 = 每月偿还利息 + 每月偿还本金
  12. objArray[i - 1] = new Array();
  13. objArray[i - 1]['qc'] = i; //期次
  14. objArray[i - 1]['chbx'] = (interestM).toFixed(2); //第i个月,偿还本息(元) 月供
  15. objArray[i - 1]['chlx'] = (interestM - chbj).toFixed(2); //第i个月,偿还利息(元)
  16. objArray[i - 1]['chbj'] = (chbj).toFixed(2); //第i个月,偿还本金(元)
  17. objArray[i - 1]['sybj'] = (money - (chbj * i)).toFixed(2); //第i个月,剩余本金(元)
  18. interestTotal = interestTotal + interestM;
  19. }
  20. interestTotal = (Math.round(interestTotal * 100)) / 100; //累计还款总额
  21. var yg = objArray[0]['chbx']; //月供 最高月供
  22. var ljhkze = interestTotal; //累计还款总额
  23. var resArray = new Array();
  24. resArray['list_res'] = new Array(); //列表信息数组
  25. resArray['list_res'] = objArray;
  26. resArray['simp_res'] = new Array(); //基础信息数组
  27. resArray['simp_res']['yg'] = parseFloat(yg).toFixed(0);
  28. resArray['simp_res']['ljhkze'] = parseFloat(ljhkze).toFixed(0);
  29. resArray['simp_res']['lxze'] = parseFloat(lxze).toFixed(0);
  30. return resArray;
  31. }
  1. // 等额本金
  2. function debj(year_lilv, money, month) {
  3. money = money * 10000;
  4. var active = year_lilv * 10 / 12 * 0.001;
  5. var objArray = new Array();
  6. var interestM = 0; //月还款额
  7. var interestTotal = 0; //累计还款总额
  8. var chbj = money / month; //每月偿还本金(元) month 3年36
  9. for (var i = 1; i <= month; i++) {
  10. var t1 = (money - money * (i - 1) / month) * active; //第i月还款利息
  11. interestM = money / month + t1; //第i月还款额
  12. objArray[i - 1] = new Array(); //声明二维,每一个一维数组里面的一个元素都是一个数组;
  13. objArray[i - 1]['qc'] = i; //期次
  14. objArray[i - 1]['chbx'] = (interestM).toFixed(2); //第i个月,偿还本息(元) 月供
  15. objArray[i - 1]['chlx'] = (interestM - chbj).toFixed(2); //第i个月,偿还利息(元)
  16. objArray[i - 1]['chbj'] = (chbj).toFixed(2); //第i个月,偿还本金(元)
  17. objArray[i - 1]['sybj'] = (money - (chbj * i)).toFixed(2); //第i个月,剩余本金(元)
  18. if (objArray[i - 1]['sybj'] <= 1) { //最后一个月出现小于1元的值
  19. objArray[i - 1]['sybj'] = 0.00; //第i个月,剩余本金(元)
  20. }
  21. interestTotal = interestTotal + interestM;
  22. }
  23. interestTotal = (Math.round(interestTotal * 100)) / 100; //累计还款总额
  24. var yg = objArray[0]['chbx']; //月供 最高月供
  25. var ljhkze = interestTotal; //累计还款总额
  26. var lxze = (ljhkze - money); //利息总额
  27. lxze = lxze.toFixed(0);
  28. var yxxdy = (parseFloat(objArray[0]['chbx']) + parseFloat(objArray[month - 1]['chbx'])); //月薪需大于
  29. yxxdy = yxxdy.toFixed(0);
  30. var resArray = new Array();
  31. resArray['simp_res'] = new Array(); //顶部基础信息数组
  32. resArray['list_res'] = new Array(); //底部列表信息数组
  33. resArray['simp_res']['yg'] = parseFloat(yg).toFixed(0);
  34. resArray['simp_res']['ljhkze'] = parseFloat(ljhkze).toFixed(0);
  35. resArray['simp_res']['lxze'] = parseFloat(lxze).toFixed(0);
  36. resArray['simp_res']['yxxdy'] = parseFloat(yxxdy).toFixed(0);
  37. resArray['list_res'] = objArray;
  38. return resArray;
  39. }
  1. // 等额本息
  2. function debx(year_lilv, money, month) {
  3. money = (money * 10000);
  4. var active = year_lilv * 10 / 12 * 0.001;
  5. var t1 = Math.pow(1 + active, month);
  6. var t2 = t1 - 1;
  7. var tmp = t1 / t2;
  8. var monthratio = active * tmp; //月利率
  9. var monthBack = (money * monthratio).toFixed(2); //每月支付本息
  10. year_lilv = year_lilv * 0.01; //百分比
  11. var yue_lilv = ((year_lilv / 12));
  12. var objArray = new Array(); //等额本息结果二维数组
  13. var ljch_bj = 0; //累积偿还本金
  14. var pre_sybj = 0; //上一个月剩余本金
  15. var i = 1;
  16. for (i = 1; i <= month; i++) { //等额本息
  17. objArray[i - 1] = new Array(); //声明二维,每一个一维数组里面的一个元素都是一个数组;
  18. objArray[i - 1]['qc'] = i; //期次
  19. objArray[i - 1]['chbx'] = monthBack; //第i个月,偿还本息(元) 月供
  20. if (i == 1) { //第一个月
  21. pre_sybj = money;
  22. } else {
  23. pre_sybj = objArray[i - 2]['sybj'];
  24. }
  25. objArray[i - 1]['chlx'] = (pre_sybj * yue_lilv).toFixed(2); //第i个月,偿还利息(元)每月付息额 =(贷款本金-已还清贷款本金)×月利率
  26. var chbj = (objArray[i - 1]['chbx'] - objArray[i - 1]['chlx']); //第i个月,偿还本金(元)
  27. objArray[i - 1]['chbj'] = chbj.toFixed(2);
  28. ljch_bj += chbj;
  29. var sybj = (money - ljch_bj);
  30. objArray[i - 1]['sybj'] = sybj.toFixed(2); //第i个月,剩余本金(元)
  31. if (sybj <= 1) { //最后一个月出现小于1元的值
  32. objArray[i - 1]['sybj'] = 0.00; //第i个月,剩余本金(元)
  33. }
  34. }
  35. var yg = monthBack; //月供
  36. var ljhkze = monthBack * month; //累计还款总额
  37. var lxze = ljhkze - money; //利息总额
  38. var yxxdy = monthBack * 2; //月薪需大于
  39. var resArray = new Array();
  40. resArray['simp_res'] = new Array(); //顶部基础信息数组
  41. resArray['list_res'] = new Array(); //底部列表信息数组
  42. resArray['simp_res']['yg'] = parseFloat(yg).toFixed(0);
  43. resArray['simp_res']['ljhkze'] = parseFloat(ljhkze).toFixed(0);
  44. resArray['simp_res']['lxze'] = parseFloat(lxze).toFixed(0);
  45. resArray['simp_res']['yxxdy'] = parseFloat(yxxdy).toFixed(0);
  46. resArray['list_res'] = objArray;
  47. return resArray;
  48. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/250795
推荐阅读
相关标签
  

闽ICP备14008679号