JAVA计算等额本金还款列表
JAVA计算等额本金还款列表
- 公式
- 代码
- 运行结果
等额本金计算还款列表的代码来了~
公式
月还本息=(本金/还款月数)+(本金-累计已还本金)×月利率
每月本金=总本金/还款月数
每月利息=(本金-累计已还本金)×月利率
还款总利息=(还款月数+1)×贷款额×月利率/2
还款总额=(还款月数+1)×贷款额×月利率/2+ 贷款额
代码
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Calendar;public class InterestCalculation {static int DECIMAL_SCALE = 9;static BigDecimal BIGDECAMAL_100 = new BigDecimal(100);static BigDecimal BIGDECAMAL_12 = new BigDecimal(12);static BigDecimal BIGDECAMAL_30 = new BigDecimal(30);/*** 等额本金 还款列表计算(自然月)* @param total 总金额* @param yearRate 年利率* @param sumTerm 总期数* @throws Throwable*/public static void calculation_DEBJ_ZRY(BigDecimal total,BigDecimal yearRate,int sumTerm) throws Throwable{//月利率BigDecimal monthRate = yearRate.divide(BIGDECAMAL_12,DECIMAL_SCALE, BigDecimal.ROUND_HALF_UP);//还款总利息BigDecimal sumInterest = new BigDecimal(sumTerm+1).multiply(total).multiply(monthRate).divide(new BigDecimal(2),2,BigDecimal.ROUND_HALF_UP);BigDecimal monthPrincipal = total.divide(new BigDecimal(sumTerm),DECIMAL_SCALE,BigDecimal.ROUND_HALF_UP);BigDecimal remainTotal = total; //剩余本金付初始值为总本金 Calendar calendar = Calendar.getInstance();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");System.out.println("本金:"+total.setScale(2)+"\t年利率:"+yearRate.multiply(BIGDECAMAL_100)+"%\t总期数:"+sumTerm+"\t总利息:"+sumInterest);System.out.println("期次\t回款本息(元)\t回款利息(元)\t回款本金(元)\t剩余本金(元)\t回款日期");for(int i=1;i<=sumTerm;i++){//每月利息=(总本金-累计已还本金)×月利率BigDecimal interest = remainTotal.multiply(monthRate).setScale(2,BigDecimal.ROUND_HALF_UP);//月还本息BigDecimal monthPayTotal = monthPrincipal.add(interest);remainTotal = remainTotal.subtract(monthPrincipal);calendar.add(Calendar.MONTH, 1);System.out.println(i+"\t"+monthPayTotal.setScale(2,BigDecimal.ROUND_HALF_UP)+"\t\t"+interest.setScale(2,BigDecimal.ROUND_HALF_UP)+"\t\t"+monthPrincipal.setScale(2,BigDecimal.ROUND_HALF_UP)+"\t\t"+remainTotal.setScale(2,BigDecimal.ROUND_HALF_UP)+"\t\t"+sdf.format(calendar.getTime()));}}public static void main(String[] args) throws Throwable {//本金10000元,年利率15%,出借18个月BigDecimal total = new BigDecimal(10000);BigDecimal yearRate = BigDecimal.valueOf(0.15);int sumTerm = 18; calculation_DEBJ_ZRY(total,yearRate,sumTerm); }
运行结果
本金:10000.00 年利率:15.00% 总期数:18 总利息:1187.50
期次 回款本息(元) 回款利息(元) 回款本金(元) 剩余本金(元) 回款日期
1 680.56 125.00 555.56 9444.44 2019-06-12
2 673.62 118.06 555.56 8888.89 2019-07-12
3 666.67 111.11 555.56 8333.33 2019-08-12
4 659.73 104.17 555.56 7777.78 2019-09-12
5 652.78 97.22 555.56 7222.22 2019-10-12
6 645.84 90.28 555.56 6666.67 2019-11-12
7 638.89 83.33 555.56 6111.11 2019-12-12
8 631.95 76.39 555.56 5555.56 2020-01-12
9 625.00 69.44 555.56 5000.00 2020-02-12
10 618.06 62.50 555.56 4444.44 2020-03-12
11 611.12 55.56 555.56 3888.89 2020-04-12
12 604.17 48.61 555.56 3333.33 2020-05-12
13 597.23 41.67 555.56 2777.78 2020-06-12
14 590.28 34.72 555.56 2222.22 2020-07-12
15 583.34 27.78 555.56 1666.67 2020-08-12
16 576.39 20.83 555.56 1111.11 2020-09-12
17 569.45 13.89 555.56 555.56 2020-10-12
18 562.50 6.94 555.56 0.00 2020-11-12
JAVA计算等额本金还款列表相关推荐
- Java计算等额本金和等额本息
Java计算等额本金和等额本息 等额本金 等额本息 等额本金 /*** 等额本金是指一种贷款的还款方式,是在还款期内把贷款数总额等分,每月偿还同等数额的本金和剩余贷款在该月所产生的利息,这样由于每月的 ...
- 按揭贷款等额本金还款计算公式(可以自己修改数据计算出自己的还款计划表)...
比如我的还款计划表2009年为: -------------------2009年还款计划------------------- 2009年第01月应还款金额 : 1583.33 + 1272.81 ...
- C语言实验:等额本金还款法的计算
海萍夫妇为了彻底告别"蜗居"生活,痛下决心贷款60万元购买了一套三居室 .若贷款月利率为0.5%,还款期限为120个月,还款方式为等额本金还款法(即贷款期限内每期以相等的额度偿还贷 ...
- BigDecimal用法之计算等额本金和等额本息
一.引言 <EffactiveJava>中介绍float和double类型的主要设计目标是为了科学计算和工程计算.他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算 ...
- 等额本息和等额本金还款在R中的实现
等额本金还款 library(tidyverse) Eqprincipal <- function(principal, r, Loanterm){n <- Loanterm * 12r ...
- 等额本息还款和等额本金还款计算公式的推导
VBA代码实现:http://blog.csdn.net/xiaotao_liu/archive/2008/02/27/2124452.aspx 众所周知,银行住房贷款的分期付款方式分为等额本息付款和 ...
- 等额本息 和 等额本金还款法
//等额本息还款法 //je 贷款金额 //lv 利率%,如年利率5.6%就为5.6 //qx 贷款期限(月) //lvlx 利率类型,1:年利率, 2:月利率 //xx 详细列表 //公式:[贷款本 ...
- 用c语言实现银行贷款程序(等额本息还款法、等额本金还款法)
王先生从银行贷了350,000元用于买房,贷款期限为20年 ⑴用等额本息还款法,计算每月应还本息(每月月供).20年总利息 ⑵用等额本金还款法,计算每月应还本息(每月月供).20年总利息? ⑶比较两种 ...
- C++实现银行贷款等额本息和等额本金还款
C++实现银行贷款等额本息和等额本金还款 1.等额本金 概念:等额本金就是每个月还款的本金是相同的,即为贷款金额/贷款月数. 计算公式: B=Amonths+a∗rateB = \frac{A}{mo ...
最新文章
- Android性能系列-渲染篇
- linux /proc目录文件详解
- Ubuntu 16.04通过Unity Tweak Tool实现点击图标最小化
- PyQt5 图形界面 - Qt Designer独立安装包,仅需30M!python图像化界面绘制工具
- 初中数学分几个模块_【初中数学】8大模块61个必考易错知识点!
- checkVector()
- 【机器学习基础】非常详细!机器学习模型评估指标总结!
- C语言 十六进制整数字符串转十进制整数
- 【k8s学习笔记】第二篇:在Ubuntu系统中安装kubelet,kubeadm和kubectl
- 文献记录(part63)--跨模态社交图像聚类
- 还是俄罗斯方块之android版
- gluPickMatrix和glReadPixels
- js html异步加载的属性,异步加载JS的五种方式
- PyQt5笔记(06) -- 菜单
- python 长时间运行 会停止_如何“停止”和“恢复”长时间运行Python脚本?
- android学习——popupWindow 在指定位置上的显示
- Building a Hypermedia-Driven RESTful Web Service
- 01-locale-fix.sh的/usr/bin/locale-check: No such file or directory解决 Ubuntu 18.04 20.04
- windows service.bat java 内存设置_Tomcat加大内存设置从windows服务启动不生效的问题...
- git修改已提交commit的Author信息