评估价月供计算器

去年去看了几次房,加了N个房产中介。每天朋友圈都有中介发卖房广告,内容一般是多少平米挂出单价是多少,然后首付能做到多少。没了解过的人可能奇怪,按三成一算怎么首付可以这么少。这里少于三成首付,靠的是提高评估价,银行多贷来的部分填补到三成首付(ps:即是高评高贷,低首付吸引促成交易,不能尽信中介,实际可能评不到那么高。楼主去年就被忽悠了,8.5K的单价,说是可以评估到11K,相当首付不到20W,结果评下来9K每平,首付比中介说的多出大几万,老婆本都折进去了)。
评估价银行要参考当前市场成交的价格的,而中介是向来说近年的一个最高评估价,一般评估出来会低。写这个程序用来还原评估价并计算出月供(等额本息),各位看官多了解了解市场行情,从中判断中介所说水份有多大。下面上代码: 

 


import java.math.BigDecimal;

/**
 * 评估价,月供计算器
 * 中介一般说多少平米挂出单价是多少,然后首付能做到多少,实际少于三成首付,靠的是提高评估价(ps:即是高评高贷,促成交易手段,实际一般评不到那么高,忽悠).
 * 这个程序用来还原评估价并计算出月供(等额本息)
 * 计算以三成首付,基准利率4.9,月供等额本息为例
 * 评估价计算公式:(S*P*0.7+S*P*0.3-F)/0.7/S=(S*P-F)/0.7/S
 * S 面积 space,P 每平米单价 price,F 首付总额firstpay
 * <p></p>
 * 等额本息:〔贷款本金×月利率×(1+月利率)^还款月数〕÷〔(1+月利率)^还款月数-1〕
 * 等额本金:每月还款金额 = (贷款本金 ÷ 还款月数)+(本金 — 已归还本金累计额)×每月利率
 * ^符号表示乘方
 * 举例说明假设以10000元为本金、在银行贷款10年、基准利率是6.65%,比较下两种贷款方式的差异:
 * 等额本息还款法: 月利率=年利率÷12=0.0665÷12=0.005541667
 * 月还款本息=〔10000×0.005541667×(1+0.005541667)^120〕÷〔(1+0.005541667)^120-1〕=114.3127元
 * 合计还款 13717.52元  合计利息 3717.52万元.
 * 等额本金还款法 : 每月还款金额 = (贷款本金÷还款月数)+(本金 — 已归还本金累计额)×每月利率
 * 	=(10000  ÷120)+(10000— 已归还本金累计额)×0.005541667
 * 	首月还款 138.75元  每月递减0.462元
 * 合计还款 13352.71元  利息 3352.71元
 *
 * @author nengguo.he
 * @version 1.0
 * @time 2019/5/24 9:46 AM
 * @since 1.0
 */
public class Test {

	public static void main(String[] args){
		double baseUp = 10d;//上浮百分比
		double s = 117d;//面积
		double p = 12000d;//单价
		double f = 230000d;//首付
		double vp = round((s * p - f)/0.7/s, 2);//评估价
		double vpt = round(s * vp, 2);//评估总价
		double loan = round(s * vp * 0.7, 2);//贷款总额

		System.out.printf("面积:%s, 单价:%s, 首付:%s, 总价:%s\n\n", s, p, f, (s*p));
		System.out.printf("评估单价:%s, 评估总价:%s, 贷款总额:%s\n\n", vp, vpt, loan);

		calMonthPay(loan, baseUp);
	}

	private static void calMonthPay(double loan, double baseUp) {
		double base = 0.049;//基准利率
		double yearBase = (double) Math.round((base*(1 + baseUp /100)) * 10000)/ 10000;
		double monthBase = round(yearBase / 12, 8);
		System.out.printf("年利率:%s, 月利率:%s\n\n", yearBase, monthBase);

		//等额本息
		double y30 = Math.pow((1+monthBase), 12*30);
		double m30y = round((loan * monthBase * y30)/(y30 - 1), 2);

		double y25 = Math.pow((1+monthBase), 12*25);
		double m25y = round((loan * monthBase * y25)/(y25 - 1), 2);

		double y20 = Math.pow((1+monthBase), 12*20);
		double m20y = round((loan * monthBase * y20)/(y20 - 1), 2);

		System.out.printf("30年月供:%s, 25年月供:%s, 20年月供:%s\n\n", m30y, m25y, m20y);
	}

	private static double round(double val, int scale) {
		return new BigDecimal(val).setScale(scale, BigDecimal.ROUND_HALF_UP).doubleValue();
	}

}

运行结果:

 

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页