java 银行贷款工具类
- 2019 年 10 月 25 日
- 筆記
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_32534855/article/details/101012091
等额本金
/** * 计算等额本金还款 * * @param principal 贷款总额 * @param months 贷款期限 * @param rate 贷款利率 * @return */ public static Kv calculateEqualPrincipal(double principal, int months, double rate) { Kv kv = Kv.create(); double monthRate = rate / (100 * 12);//月利率 double prePrincipal = principal / months;//每月还款本金 double firstMonth = prePrincipal + principal * monthRate;//第一个月还款金额 double decreaseMonth = prePrincipal * monthRate;//每月利息递减 double interest = (months + 1) * principal * monthRate / 2;//还款总利息 double totalMoney = principal + interest;//还款总额 kv.put("totalMoney",format(totalMoney));//还款总额 kv.put("principal",format(principal));//贷款总额 kv.put("interest",format(interest));//还款总利息 kv.put("firstMonth",format(firstMonth*10000));//首月还款金额 kv.put("decreaseMonth",format(decreaseMonth*10000));//每月递减利息 kv.put("months",months);//还款期限 return kv; }
等额本金
/** * 计算等额本息还款 * * @param principal 贷款总额 * @param months 贷款期限 * @param rate 贷款利率 * @return */ public static Kv calculateEqualPrincipalAndInterest(double principal, int months, double rate) { Kv kv = Kv.create(); double monthRate = rate / (100 * 12);//月利率 double preLoan = (principal * monthRate * Math.pow((1 + monthRate), months)) / (Math.pow((1 + monthRate), months) - 1);//每月还款金额 double totalMoney = preLoan * months;//还款总额 double interest = totalMoney - principal;//还款总利息 kv.put("totalMoney",format(totalMoney));//还款总额 kv.put("principal",format(principal));//贷款总额 kv.put("interest",format(interest));//还款总利息 kv.put("preLoan",format(preLoan*10000));//每月还款金额 kv.put("months",months);//还款期限 return kv; }