java月利率计算(等额本息贷款)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java月利率计算(等额本息贷款)相关的知识,希望对你有一定的参考价值。
等额本息 每月还款计算公式:
每月本息金额 = (本金×月利率×(1+月利率)^还款月数)÷ ((1+月利率)^还款月数-1))
反转求出 月利率
月利率 如果根据上面公式反转是算不出来的。
下面给出一种计算方式具体是试出来的,从1开始 一次减少0.1,,减到0.1后,每次再减少,0.01
/** * Project Name:cfss_asws1 * File Name:NiTui.java * Package Name:test * Date:2018年8月16日下午5:40:07 * Copyright (c) 2018 * Company: 深圳平安综合金融服务有限公司 All Rights Reserved. * */ package org.agoncal.sample.jmh; /** * ClassName:NiTui <br/> * Function: TODO ADD FUNCTION. <br/> * Reason: TODO ADD REASON. <br/> * Date: 2018年8月16日 下午5:40:07 <br/> * * @author ZHANGZHEN626 * @version * @since JDK 1.6 * @see */ public class NiTui { /** * * rate:(这里用一句话描述这个方法的作用). <br/> * TODO(这里描述这个方法适用条件 – 可选).<br/> * TODO(这里描述这个方法的执行流程 – 可选).<br/> * TODO(这里描述这个方法的使用方法 – 可选).<br/> * TODO(这里描述这个方法的注意事项 – 可选).<br/> * * @author ZHANGZHEN626 * @param a 贷款金额 * @param b 月供(每月还款金额) * @param c 还款期数 * @param cnt 迭代试的次数 * @param ina 精确到小数点后几位。 * @return * @since JDK 1.6 */ public static double rate(double a, double b, double c, int cnt, int ina) { double rate = 1, x, jd = 0.1, side = 0.1, i = 1; do { x = a / b - (Math.pow(1 + rate, c) - 1) / (Math.pow(rate + 1, c) * rate); if (x * side > 0) { side = -side; jd *= 10; } rate += side / jd; } while (i++ < cnt && Math.abs(x) >= 1 / Math.pow(10, ina)); // if (i > cnt) // return Double.NaN; return rate; } public static void main(String agrs[]) { { // Double 现值 = 7944760.00d; // Double 年金 = 186627.21d; // Double 期数 = 48d; // 计算200次,比Excel20次要精确,误差精确到小数点后10位 System.out.println(rate(150000, 6000, 36, 2111, 10)); } } }
以上是关于java月利率计算(等额本息贷款)的主要内容,如果未能解决你的问题,请参考以下文章