java等额本金、等额本息计算
import java.math.BigDecimal;/*** 银行还款计划*/
public class BankRefund {/*** 等额本金还款法【利息少,但前期还的多】* @param totalMoeny 贷款总额* @param rate 贷款商业利率* @param year 贷款年限*/public static void main(String[] args) throws Exception {int totalMoney=460000;double rate=4.9;int year=25;//double monthRes = monthPri + (totalMoney - monthPri * (i - 1)) * monthRate; 计算公式 BigDecimal bigtotalMoney = new BigDecimal(totalMoney); BigDecimal bigtotalMonth = new BigDecimal(year * 12); BigDecimal bigrate = new BigDecimal(rate); BigDecimal biyearmonth = new BigDecimal(1200);double monthPri = bigtotalMoney.divide(bigtotalMonth, 2, BigDecimal.ROUND_HALF_UP).doubleValue();/**保留2位**/ BigDecimal exactMonthPri=bigtotalMoney.divide(bigtotalMonth, 16, BigDecimal.ROUND_HALF_UP);/**保留16位**/for (int i = 1; i <= (year * 12); i++) {BigDecimal payedPri=exactMonthPri.multiply(new BigDecimal(i-1));/**已经还的本金**/BigDecimal remainPri=bigtotalMoney.subtract(payedPri);/**剩余本金**/BigDecimal monthInterest=remainPri.multiply(bigrate.divide(biyearmonth,16, BigDecimal.ROUND_HALF_UP)); System.out.print("第" + i + "月本金为:"+monthPri); System.out.println(" 月利息为:"+monthInterest.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); }}/*** 等额本息还款【利息多】* @param totalMoeny 贷款总额* @param rate 贷款商业利率* @param year 贷款年限*/public static void interest(int totalMoney, double rate, int year) {double monRate = resMonthRate(rate); double monInterest = totalMoney * monRate * Math.pow((1 + monRate), year * 12) / (Math.pow((1 + monRate), year * 12) - 1);BigDecimal b = new BigDecimal(monInterest);monInterest = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();System.out.println("月供本息和:" + monInterest);}/*** 转换为月利率* @param rate* @return*/public static double resMonthRate(double rate) {return rate / 12;}public static void main(String[] args) {int totalMoney = 460000;double rate = 0.049;int year = 25;// BankRefund.interest(totalMoney, rate, year);BankRefund.principal(totalMoney, rate, year);}
}
console:
第1月本金为:1533.33 月利息为:1878.33
第2月本金为:1533.33 月利息为:1872.07
第3月本金为:1533.33 月利息为:1865.81
。。。。。。
BigDecimal.setScale(newScale, roundingMode)方法用于格式化小数点
newScale指的是你小数点后的位数
roundingMode是小数的保留模式
BigDecimal.ROUND_HALF_UP表示的就是4舍5入。
java等额本金、等额本息计算相关推荐
- 等额本金等额本息工具类2023
等额本金&等额本息工具类2023 等额本金 等额本金 问题反馈 等额本金 import java.math.BigDecimal; import java.math.RoundingMode; ...
- java 等额本金等额本息工具类
2019独角兽企业重金招聘Python工程师标准>>> 等额本息: /*** Description:等额本息工具类* Copyright: Copyright (corporati ...
- 如何使用python进行等额本金-等额本息贷款计算
#贷款额为a,月利率为i,年利率为I,还款月数为n a = 500000.00 I = 0.11495 i = I/12 n = 60 print("-----等额本息计算,以5个月为例-- ...
- 银行业务中贷款算法等额本金等额本息算法程序
写一个贷款计算器,从网上找了一个算法,自己改了改可以用了,不错,分享给大家 import java.text.DecimalFormat; public class jshk { public sta ...
- C语言实验:等额本金还款法的计算
海萍夫妇为了彻底告别"蜗居"生活,痛下决心贷款60万元购买了一套三居室 .若贷款月利率为0.5%,还款期限为120个月,还款方式为等额本金还款法(即贷款期限内每期以相等的额度偿还贷 ...
- 等额本金.等额本息.房贷计算
<?phpfunction debx(){$dkm = 12; //贷款月数,20年就是240个月$dkTotal = 2000; //贷款总额$dknl = 0.049; //贷款年利率$em ...
- Java计算等额本金和等额本息
Java计算等额本金和等额本息 等额本金 等额本息 等额本金 /*** 等额本金是指一种贷款的还款方式,是在还款期内把贷款数总额等分,每月偿还同等数额的本金和剩余贷款在该月所产生的利息,这样由于每月的 ...
- Java实现等额本金
import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.Calendar; import ja ...
- 房贷利率有无套路?Python解读“等额本金与等额本息”的差异所在
作者 | xiaoyu 来源 | Python数据科学 很多朋友留言说不知道房贷利率的不同归还方式是不是有套路,内心深表疑虑.我的第一反应是因为房贷很高,大家看到消费分期的套路自然而然就想到了房贷,很 ...
- python等额本息和等额本金_用Python解读房贷利率,要不要看随你
可能很多买过房.贷过款的朋友大概都知道怎么回事,但是我相信大部分人也没细研究过,而绝大部分人买房时更是任由房屋中介摆布,因为给了中介费相信他们可以算的明明白白,自己也就不过多深究了.但我觉得买房不是小 ...
最新文章
- 2021年大数据常用语言Scala(五):基础语法学习 字符串
- Tomcat灵活配置多项目,多端口,多域名,多虚拟目录
- 趣谈网络协议笔记-二(第十二讲)
- 常用软件架构模式分类
- NOtePad++快捷键大全
- wxWidgets:wxStaticLine类用法
- 垂直拆分后,遇到瓶颈,数据水平拆分
- 禅道 11.4.1 版本发布,主要优化细节
- iView学习笔记(三):表格搜索,过滤及隐藏列操作
- [深度学习]-CNN-ImageNet历年冠军和相关CNN模型
- Android UI:机智的远程动态更新策略
- NavicatPremium-Mac-无法打开问题
- Qt抽奖圆盘(减速效果)
- PPC软件字体太小的调整
- 网易云音乐 网络错误 linux,解决ubuntu安装网易云音乐失败的方法
- 锐捷服务器虚拟化技术_网络设备-锐捷-交换机(S8607E)VSU虚拟化终结配置篇
- oracle错误1327,问题简述:在oracle linux下安装oracle10g,多个文件报“Permission denied”错误...
- 【自然语言处理】【文本风格迁移】基于风格实例的文本风格迁移
- 优秀的第二外语学习网站:Lang-8
- 蜜瓜文案:水果店蜜瓜简单文案,蜜瓜水果朋友圈配的文案
热门文章
- 【每天学点Python】案例四:52周存钱挑战
- 计算机键盘在线识别,电脑的外接键盘无法识别怎么办?
- 常见查找算法--(快速查找或二分查找)
- Savitzky-Golay 滤波器
- SI24R1调试接收方能接收到数据,但发送方提示发送超时失败
- sql 多表连接多条件匹配查询,按匹配度排序
- 解决shardingsphere 4.1.1 SQLFeatureNotSupportedException: isValid sharding-jdbc
- PyQt5 clicked和clicked[bool]信号区别
- 回归远程 - 云原生IDE是IaC从表象触达本质的必然选择 | SmartIDE
- Android接入google地图