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

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

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

// 先息后本
            function xxhb(year_lilv, money, month) {
                money = money * 10000;
                var objArray = new Array();
                var interestM = 0; // 月还款额
                var interestTotal = 0; // 累计还款总额
                var chbj = 0; // 每月偿还本金0 最后一个月偿还全部本金
                var lxze = money * year_lilv / 12 * 0.01 * month; // 利息总额
                for (var i = 1; i <= month; i++) {
                    var t1 = lxze / month; //第i月还款利息
                    interestM = t1; //第i月还款额 = 每月偿还利息 最后一个月还款额 = 每月利息 + 贷款本金
                    if (i == month) { // 最后一个月
                        chbj = money; // 
                        interestM = t1 + money;
                    }
                    objArray[i - 1] = new Array(); 
                    objArray[i - 1]['qc'] = i; //期次
                    objArray[i - 1]['chbx'] = (interestM).toFixed(2); //第i个月,偿还本息(元) 月供
                    objArray[i - 1]['chlx'] = (interestM - chbj).toFixed(2); //第i个月,偿还利息(元)
                    objArray[i - 1]['chbj'] = (chbj).toFixed(2); //第i个月,偿还本金(元)
                    objArray[i - 1]['sybj'] = (money - (chbj * i)).toFixed(2); //第i个月,剩余本金(元)
                    interestTotal = interestTotal + interestM;
                }

interestTotal = (Math.round(interestTotal * 100)) / 100; //累计还款总额
                var yg = objArray[0]['chbx']; //月供 最高月供
                var ljhkze = interestTotal; //累计还款总额

var resArray = new Array();
                resArray['list_res'] = new Array(); //列表信息数组
                resArray['list_res'] = objArray;
                resArray['simp_res'] = new Array(); //基础信息数组
                resArray['simp_res']['yg'] = parseFloat(yg).toFixed(0);
                resArray['simp_res']['ljhkze'] = parseFloat(ljhkze).toFixed(0);
                resArray['simp_res']['lxze'] = parseFloat(lxze).toFixed(0);

return resArray;
            }

// 等本等息
            function dbdx(year_lilv, money, month) {
                money = money * 10000;
                var objArray = new Array();
                var interestM = 0; // 月还款额
                var interestTotal = 0; // 累计还款总额
                var chbj = money / month; // 每月偿还本金 = 贷款金额 除以 月份
                var lxze = money * year_lilv / 12 * 0.01 * month; // 利息总额
                for (var i = 1; i <= month; i++) {
                    var t1 = lxze / month; //第i月还款利息
                    interestM = chbj + t1; //第i月还款额 = 每月偿还利息 + 每月偿还本金
                    objArray[i - 1] = new Array(); 
                    objArray[i - 1]['qc'] = i; //期次
                    objArray[i - 1]['chbx'] = (interestM).toFixed(2); //第i个月,偿还本息(元) 月供
                    objArray[i - 1]['chlx'] = (interestM - chbj).toFixed(2); //第i个月,偿还利息(元)
                    objArray[i - 1]['chbj'] = (chbj).toFixed(2); //第i个月,偿还本金(元)
                    objArray[i - 1]['sybj'] = (money - (chbj * i)).toFixed(2); //第i个月,剩余本金(元)
                    interestTotal = interestTotal + interestM;
                }

interestTotal = (Math.round(interestTotal * 100)) / 100; //累计还款总额
                var yg = objArray[0]['chbx']; //月供 最高月供
                var ljhkze = interestTotal; //累计还款总额

var resArray = new Array();
                resArray['list_res'] = new Array(); //列表信息数组
                resArray['list_res'] = objArray;
                resArray['simp_res'] = new Array(); //基础信息数组
                resArray['simp_res']['yg'] = parseFloat(yg).toFixed(0);
                resArray['simp_res']['ljhkze'] = parseFloat(ljhkze).toFixed(0);
                resArray['simp_res']['lxze'] = parseFloat(lxze).toFixed(0);

return resArray;
            }

// 等额本金
            function debj(year_lilv, money, month) {
                money = money * 10000;

var active = year_lilv * 10 / 12 * 0.001;
                var objArray = new Array();
                var interestM = 0; //月还款额
                var interestTotal = 0; //累计还款总额
                var chbj = money / month; //每月偿还本金(元) month 3年36
                for (var i = 1; i <= month; i++) {
                    var t1 = (money - money * (i - 1) / month) * active; //第i月还款利息
                    interestM = money / month + t1; //第i月还款额
                    objArray[i - 1] = new Array(); //声明二维,每一个一维数组里面的一个元素都是一个数组;
                    objArray[i - 1]['qc'] = i; //期次
                    objArray[i - 1]['chbx'] = (interestM).toFixed(2); //第i个月,偿还本息(元) 月供
                    objArray[i - 1]['chlx'] = (interestM - chbj).toFixed(2); //第i个月,偿还利息(元)
                    objArray[i - 1]['chbj'] = (chbj).toFixed(2); //第i个月,偿还本金(元)
                    objArray[i - 1]['sybj'] = (money - (chbj * i)).toFixed(2); //第i个月,剩余本金(元)
                    if (objArray[i - 1]['sybj'] <= 1) { //最后一个月出现小于1元的值
                        objArray[i - 1]['sybj'] = 0.00; //第i个月,剩余本金(元)
                    }
                    interestTotal = interestTotal + interestM;
                }
                interestTotal = (Math.round(interestTotal * 100)) / 100; //累计还款总额
                var yg = objArray[0]['chbx']; //月供 最高月供
                var ljhkze = interestTotal; //累计还款总额
                var lxze = (ljhkze - money); //利息总额
                lxze = lxze.toFixed(0);
                var yxxdy = (parseFloat(objArray[0]['chbx']) + parseFloat(objArray[month - 1]['chbx'])); //月薪需大于
                yxxdy = yxxdy.toFixed(0);
                var resArray = new Array();
                resArray['simp_res'] = new Array(); //顶部基础信息数组
                resArray['list_res'] = new Array(); //底部列表信息数组
                resArray['simp_res']['yg'] = parseFloat(yg).toFixed(0);
                resArray['simp_res']['ljhkze'] = parseFloat(ljhkze).toFixed(0);
                resArray['simp_res']['lxze'] = parseFloat(lxze).toFixed(0);
                resArray['simp_res']['yxxdy'] = parseFloat(yxxdy).toFixed(0);
                resArray['list_res'] = objArray;

return resArray;
            }

// 等额本息
            function debx(year_lilv, money, month) {
                money = (money * 10000);

var active = year_lilv * 10 / 12 * 0.001;
                var t1 = Math.pow(1 + active, month);
                var t2 = t1 - 1;
                var tmp = t1 / t2;
                var monthratio = active * tmp; //月利率
                var monthBack = (money * monthratio).toFixed(2); //每月支付本息
                year_lilv = year_lilv * 0.01; //百分比
                var yue_lilv = ((year_lilv / 12));
                var objArray = new Array(); //等额本息结果二维数组
                var ljch_bj = 0; //累积偿还本金
                var pre_sybj = 0; //上一个月剩余本金
                var i = 1;
                for (i = 1; i <= month; i++) { //等额本息
                    objArray[i - 1] = new Array(); //声明二维,每一个一维数组里面的一个元素都是一个数组;
                    objArray[i - 1]['qc'] = i; //期次
                    objArray[i - 1]['chbx'] = monthBack; //第i个月,偿还本息(元) 月供
                    if (i == 1) { //第一个月
                        pre_sybj = money;
                    } else {
                        pre_sybj = objArray[i - 2]['sybj'];
                    }
                    objArray[i - 1]['chlx'] = (pre_sybj * yue_lilv).toFixed(2); //第i个月,偿还利息(元)每月付息额 =(贷款本金-已还清贷款本金)×月利率
                    var chbj = (objArray[i - 1]['chbx'] - objArray[i - 1]['chlx']); //第i个月,偿还本金(元)
                    objArray[i - 1]['chbj'] = chbj.toFixed(2);
                    ljch_bj += chbj;
                    var sybj = (money - ljch_bj);
                    objArray[i - 1]['sybj'] = sybj.toFixed(2); //第i个月,剩余本金(元)
                    if (sybj <= 1) { //最后一个月出现小于1元的值
                        objArray[i - 1]['sybj'] = 0.00; //第i个月,剩余本金(元)
                    }
                }
                var yg = monthBack; //月供
                var ljhkze = monthBack * month; //累计还款总额
                var lxze = ljhkze - money; //利息总额
                var yxxdy = monthBack * 2; //月薪需大于
                var resArray = new Array();
                resArray['simp_res'] = new Array(); //顶部基础信息数组
                resArray['list_res'] = new Array(); //底部列表信息数组
                resArray['simp_res']['yg'] = parseFloat(yg).toFixed(0);
                resArray['simp_res']['ljhkze'] = parseFloat(ljhkze).toFixed(0);
                resArray['simp_res']['lxze'] = parseFloat(lxze).toFixed(0);
                resArray['simp_res']['yxxdy'] = parseFloat(yxxdy).toFixed(0);
                resArray['list_res'] = objArray;

return resArray;
            }

js贷款还款计算:等额本金、等额本息、先息后本、等本等息相关推荐

  1. 等额本金等额本息工具类2023

    等额本金&等额本息工具类2023 等额本金 等额本金 问题反馈 等额本金 import java.math.BigDecimal; import java.math.RoundingMode; ...

  2. 如何使用python进行等额本金-等额本息贷款计算

    #贷款额为a,月利率为i,年利率为I,还款月数为n a = 500000.00 I = 0.11495 i = I/12 n = 60 print("-----等额本息计算,以5个月为例-- ...

  3. java 等额本金等额本息工具类

    2019独角兽企业重金招聘Python工程师标准>>> 等额本息: /*** Description:等额本息工具类* Copyright: Copyright (corporati ...

  4. 银行业务中贷款算法等额本金等额本息算法程序

    写一个贷款计算器,从网上找了一个算法,自己改了改可以用了,不错,分享给大家 import java.text.DecimalFormat; public class jshk { public sta ...

  5. 等额本金.等额本息.房贷计算

    <?phpfunction debx(){$dkm = 12; //贷款月数,20年就是240个月$dkTotal = 2000; //贷款总额$dknl = 0.049; //贷款年利率$em ...

  6. Java计算等额本金和等额本息

    Java计算等额本金和等额本息 等额本金 等额本息 等额本金 /*** 等额本金是指一种贷款的还款方式,是在还款期内把贷款数总额等分,每月偿还同等数额的本金和剩余贷款在该月所产生的利息,这样由于每月的 ...

  7. 房贷利率有无套路?Python解读“等额本金与等额本息”的差异所在

    作者 | xiaoyu 来源 | Python数据科学 很多朋友留言说不知道房贷利率的不同归还方式是不是有套路,内心深表疑虑.我的第一反应是因为房贷很高,大家看到消费分期的套路自然而然就想到了房贷,很 ...

  8. python等额本息和等额本金_用Python解读房贷利率,要不要看随你

    可能很多买过房.贷过款的朋友大概都知道怎么回事,但是我相信大部分人也没细研究过,而绝大部分人买房时更是任由房屋中介摆布,因为给了中介费相信他们可以算的明明白白,自己也就不过多深究了.但我觉得买房不是小 ...

  9. 等额本息,等额本金区别

    等额本金,等额本息区别 买房银行贷款分为两种: 等额本金和等额本息 等额本息 等额本息定义:还款本金占比逐月递增,利息占比逐月递减,月还款数不变 由于每月的还款额度是一样的,其中每个月的还款包括了根据 ...

  10. 等额本金VS等额本息

    升息尚无定论 个人房贷市场已现不小波澜 ? http://www.soufun.com 房地产门户-搜房 2004-08-17 11:13:00.0? ? 地产资讯播报:http://news.sh. ...

最新文章

  1. 如何仅使用HTML和JavaScript构建简单的URL缩短器
  2. pycharm多光标设置
  3. LeetCode-剑指 Offer 53 - I. 在排序数组中查找数字 I
  4. python selenium webdriver_Python:selenium.webdriver问题(服务器上没有X)
  5. Hexo+码云+git快速搭建免费的静态Blog
  6. idea terminal中文乱码_Terminal优雅的办公带来超高的效率
  7. 数据库基础知识——变量
  8. 以对象的方式来访问xml数据表(二)
  9. 如何在sublime编辑器中,执行命令行脚本
  10. linux下apache安装ssl,linux下apache安装ssl步骤
  11. lms噪声测试软件介绍,LMS 振动噪声测试与分析系统.pdf
  12. windows8 初始界面和功能
  13. linux根据文件内容查找文件名,linux在当前目录下根据文件名查找文件
  14. error obtaining controller instance: failed to create NAT chain
  15. unity 打开项目路径无效_怎么打开已有的unity工程文件?如何打开一个已有的unity3d游戏工程啊?...
  16. ACWing n-皇后问题
  17. 程序员面试金典-刷题笔记
  18. http://www.vgm8.com/Search.asp?key=%B6%F1%C4%A7%B3%C7
  19. python读取.tsv文件例子(大文件处理)
  20. php 点餐系统 毕业设计,php毕业设计_基于php的校园餐厅网上订餐系统

热门文章

  1. 中继器是什么计算机网络,中继器是什么
  2. 【单片机】2.9 看门狗定时器(WDT)功能简介
  3. win10电脑风扇一直转解决方法
  4. Video Understanding(2)——Temporal Action Detection时序动作检测
  5. 优秀java程序员必须具备的技术技能
  6. Studio One5中文电脑音乐制作宿主软件保卫萝卜
  7. CSS精灵优化Retina显示屏下的网站图像
  8. python django的查询语句
  9. html 分号的作用,分号的作用是什么
  10. es文件无法找到局域网服务器,手机ES文件管理器局域网连接电脑WIN10,访问电脑文件...