码迷,mamicode.com
首页 > 编程语言 > 详细

java月利率计算(等额本息贷款)

时间:2018-08-17 17:46:40      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:name   服务   流程   使用   +=   class   平安   while   描述   

等额本息 每月还款计算公式:

每月本息金额 = (本金×月利率×(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月利率计算(等额本息贷款)

标签:name   服务   流程   使用   +=   class   平安   while   描述   

原文地址:https://www.cnblogs.com/z-test/p/9494450.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!