`
raymond.chen
  • 浏览: 1437514 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

等额本息还款

 
阅读更多

等额本息法:每月的还款额相同,从本质上来说是本金所占比例逐月递增,利息所占比例逐月递减,月还款数不变,即在月供“本金与利息”的分配比例中,前半段时期所还的利息比例大、本金比例小,还款期限过半后逐步转为本金比例大、利息比例小。

 

/**
	 * 等额本息还款法
	 * @param _loanAmount 贷款金额(元)
	 * @param _loanYears 贷款年数
	 * @param _annualInterestRate 贷款年利率(%)
	 */
	private static void averageCapitalPlusInterest(double _loanAmount, int _loanYears, double _annualInterestRate){
		BigDecimal digit_0 = new BigDecimal(0); //数字0
		BigDecimal digit_1 = new BigDecimal(1); //数字1
		BigDecimal digit_100 = new BigDecimal(100); //数字100
		BigDecimal monthsOfYear = new BigDecimal(12); //一年的月数
		int scale = 10; //精度
		
		BigDecimal loanTotal = new BigDecimal(_loanAmount);	//贷款总额,元为单位
		BigDecimal loanYears = new BigDecimal(_loanYears); //贷款年数
		BigDecimal annualInterestRate = new BigDecimal(_annualInterestRate).divide(digit_100); //年利率
		
		//还款月数
		int loanMonths = loanYears.multiply(monthsOfYear).intValue();
		System.out.println("还款月数:" + loanMonths);
		
		//月利率 = 年利率 /12。一般以千分之表示
		BigDecimal monthlyInterestRate = annualInterestRate.divide(monthsOfYear, scale, BigDecimal.ROUND_HALF_UP);
		System.out.println("月利率:" + toFixed(monthlyInterestRate.multiply(new BigDecimal(1000)), 3));
		
		//每月还款额 = [贷款本金×月利率×(1+月利率)^还款月数] ÷ [(1+月利率)^还款月数 - 1]
		BigDecimal bx1 = loanTotal.multiply(monthlyInterestRate).multiply(digit_1.add(monthlyInterestRate).pow(loanMonths));
		BigDecimal bx2 = digit_1.add(monthlyInterestRate).pow(loanMonths).subtract(digit_1);
		BigDecimal monthlyRepaymentAmount = bx1.divide(bx2, scale, BigDecimal.ROUND_HALF_UP);
		System.out.println("每月还款额:" + toFixed(monthlyRepaymentAmount, 2));
		
		//总利息
		BigDecimal totalInterest = digit_0;
		
		//剩余本金
		BigDecimal remainingPrincipal = loanTotal;
		
		System.out.println("\n期数,还款本息(元),还款利息(元),还款本金(元),剩余本金(元)");
		for(int n=1; n<=loanMonths; n++){
			//每月还贷本金 B = a*i*(1+i)^(n-1) / [(1+i)^N-1]
			//B=等额本息月还本金,a=贷款总金额, i=贷款月利率,n=第n期还贷数,N=还贷总月数
			BigDecimal bj = loanTotal.multiply(monthlyInterestRate).multiply(digit_1.add(monthlyInterestRate).pow(n-1));
			bj = bj.divide(digit_1.add(monthlyInterestRate).pow(loanMonths).subtract(digit_1), scale, BigDecimal.ROUND_HALF_UP);

			//利息 = 剩余本金 * 月利率
			BigDecimal lx = remainingPrincipal.multiply(monthlyInterestRate);

			//剩余本金
			remainingPrincipal = remainingPrincipal.subtract(bj);
			
			//总利息
			totalInterest = totalInterest.add(lx);
			System.out.println( n + "," + toFixed(monthlyRepaymentAmount, 2) + "," + toFixed(lx, 2) + "," + toFixed(bj, 2) + "," + toFixed(remainingPrincipal,2) );
		}
		
		System.out.println("总利息:" + toFixed(totalInterest, 2));
		System.out.println("还款总金额:" + toFixed(loanTotal.add(totalInterest), 2));
	}
	
	/**
	 * 四舍五入
	 * @param value 数值
	 * @param scale 精度:保留几位小数点
	 */
	private static BigDecimal toFixed(BigDecimal value, int scale){
		return value.divide(new BigDecimal(1), scale, BigDecimal.ROUND_HALF_UP);
	}

 

 

分享到:
评论

相关推荐

    贷款等额本息还款明细自动计算公式..xls

    贷款等额本息还款明细自动计算公式..xls

    用于计算建行商业贷款等额本息还款的计算器

    等额本息还款法是商业贷款中常见的还款方式之一,尤其在房贷领域广泛采用。它是指贷款人在整个贷款期限内,每月偿还固定金额的本金和利息,使得每期的还款额保持一致,直到贷款全部还清。这种方法对于借款人来说,...

    透析个人住房抵押贷款等额本息还款法.pdf

    "透析个人住房抵押贷款等额本息还款法" 该文档探讨了个人住房抵押贷款的等额本息还款法,揭示了其复利政策的实质和内涵。通过研究,文中指出,在等额本息还款方式下,两种不同方式计算出应归还的贷款本金金额和所...

    房贷计算器_等额本息还款法_新浪房产_新浪网

    本文将深入探讨“房贷计算器”这一工具,特别是在等额本息还款法下的应用,以及与之相关的编程源码知识。 等额本息还款法,是银行为购房者提供的一种常见还款方式。在这种还款方式下,借款人每月偿还的贷款金额是...

    等额本金Excel计算+等额本息Excel计算

    等额本金Excel计算+等额本息Excel计算, 公式清楚,可以综合对比哪个合算。 公式清楚,可以综合对比哪个合算。

    利用excl计算住房贷款交款明细(等额本息还款法)

    利用excl计算住房贷款交款明细(等额本息还款法) 利用宏计算,有excl就能用

    按揭贷款计算器“等额本息还款法”和“等额本金还款法”

    本文将详细解析一个使用C# 2.0编写的按揭贷款计算器,该计算器实现了两种常见的还款方式:等额本息还款法和等额本金还款法。这两种还款方式在房地产市场中广泛应用于个人按揭贷款。 首先,我们要理解什么是按揭贷款...

    等额本金&等额本息_等额本息_等额本金_

    等额本金与等额本息是两种常见的个人贷款还款方式,尤其在房贷领域应用广泛。这两种方式各有特点,适用于不同的财务状况和个人需求。 等额本息(Equal Installment)还款法,是指在整个贷款期限内,借款人每月偿还...

    等额本息法和等额本金法的两种计算公式.pdf

    等额本息还款法是一种分期偿还贷款的方法,每月偿还相同的金额,这个金额包括了部分本金和利息。这种方法的特点是每月还款额固定,使得借款人可以更好地规划个人财务。等额本息的计算公式基于贷款的本金、利率和贷款...

    Excel制作等额本金和等额本息两种还贷表.docx

    "Excel 制作等额本金和等额本息两种还贷表" 本文将详细介绍如何...使用 Excel 制作等额本金和等额本息两种还贷表,可以快速计算每月还款额,并对比两种还贷方式的优缺点,从而帮助个人或企业更好地管理贷款和还款。

    等额本息贷款计算代码

    等额本息还款法是指借款人每月偿还相同金额的贷款(包括本金和利息),直至贷款全部还清。这种方式使得贷款人有稳定的月度支出,便于规划家庭财务。 在C++编程环境下,实现等额本息贷款计算主要涉及到以下几个关键...

    python 贷款计算器 tkinter(等额本息,等额本金)

    python 贷款计算器 tkinter(等额本息,等额本金) 输入:贷款金额,贷款年限,年利率 输出:(等额本息+等额本金)每月还款,总利息支付,本息合计

    用html+js实现的等额本息贷款月供计算器

    等额本息贷款月供计算器是一种在线工具,用于帮助用户计算在采用等额本息还款方式下的贷款每月应还金额。这种还款方式是银行常见的一种贷款偿还方式,尤其适用于房贷和其他长期贷款。在这个计算器中,用户输入贷款...

    房贷提前还贷(等额本息)

    适用于等额本息方式计算提前还贷节省多少利息 1. 此excel是按25年统计计算,可自行修改 2. 可计算每月还款额度 3. 可输入详细每月提前还贷额度,计算节省多少利息

    等额本息和等额本金公式推导

    等额本息还款的计算涉及到高斯求和公式,即等差数列的求和,通过不断迭代计算出每月的还款额,确保在整个还款周期内,每期的还款额相等。 两种还款方式各有优劣。等额本金初期还款压力大,但总利息较低;等额本息每...

    银行贷款计算器 等额本息 等额本金

    银行贷款常用两种计算方式:等额本息 等额本金两种

    等额本息与等额本金还款方式的供贷分析MATLAB

    lgd=legend([p1 p2 p3 p4 p5 p6],{'等额本金已还本金','等额本金已缴贷款','等额本金提前还款','等额本息已还本金','等额本息已缴贷款','等额本息提前还款',},'Orientation','horizontal','location','northoutside'...

    ASP.NET等额本息

    在金融领域,特别是贷款计算中,等额本息(Equal Monthly Installments, EMI)和等额本金(Equal Principal Payment)是两种常见的还款方式。 等额本息是指在贷款期限内,借款人每月偿还相同金额的贷款,这个金额...

Global site tag (gtag.js) - Google Analytics