go代码实现买房贷款月供计算的方法
贷款金额:100元(先以100元为例,来对比下公积金贷款和商业贷款)
公积金贷款年利率:3.25%
商业贷款的年利率:4.90%
贷款期限:360个月(30年)
还款方式:等额本息
计算公式:之前推导过,用等比数列搞起即可
go代码如下:
packagemain import( "fmt" "math" ) funcget_pmt(f_interest_ratefloat64,term_numberint,principalint)float64{ compound_rate:=math.Pow(1+f_interest_rate,float64(term_number)) pmt:=float64(principal)*f_interest_rate*compound_rate/(compound_rate-1) returnpmt } funcmain(){ n:=360 year_month:=12 p:=100 r1:=float64(0.0490)/float64(year_month) r2:=float64(0.0325)/float64(year_month) a:=get_pmt(r1,n,p)*float64(n)-float64(p) b:=get_pmt(r2,n,p)*float64(n)-float64(p) fmt.Println(a,b) }
结果:
91.06161942420968 56.67427486605655
也就是说,如果用商业贷款100元,利息大概是91元。如果用公积金贷款100元,利息大概是57元。
实际上,公积金贷款的最大金额是90万(有要求),其余的缺口需要用商业贷款,即组合贷款。
下面来具体算算买450万房子和500万房子的月供情况:
packagemain import( "fmt" "math" ) funcget_pmt(f_interest_ratefloat64,term_numberint,principalint)float64{ compound_rate:=math.Pow(1+f_interest_rate,float64(term_number)) pmt:=float64(principal)*f_interest_rate*compound_rate/(compound_rate-1) returnpmt } funcget_month_provide(priceint){ n:=360 year_month:=12 gongjijin_loan_limit:=900000 shoufu_rate:=0.3 r1:=float64(0.0490)/float64(year_month) r2:=float64(0.0325)/float64(year_month) month_provide:=get_pmt(r2,n,gongjijin_loan_limit) month_provide+=get_pmt(r1,n,int(float64(price)*(float64(1)-float64(shoufu_rate))-float64(gongjijin_loan_limit))) fmt.Println(month_provide) } funcmain(){ get_month_provide(4500000) get_month_provide(5000000) }
结果:
15858.20808566452
17715.751607844337
如上就是月供金额情况。跟网上提供的房贷计算器的结果比对了一下,完全一致。
最后,来给一个近似的月供公式,其中x是买房的房价:
m=((0.7*x-900000)*1.9106+900000*1.5677)/360
=37.15* (x/10000)-860
=37.15*y-860
=37*y+0.15y-860(以深圳房价为例,近似认为0.15y和60相等)
=37*y-800
所以,买450万的房子和买500万的房子的月供分别为:
- m(450万)=37*450-800=15850 (和实际值15858非常接近)
- m(500万) = 37*450-800 = 17700 (和实际值17715非常接近)
当然啦,除了月供,还有首付的30%,还有这费那费,多得很。
所以,买房的总支付是: 首付+这费那费+月供*360
最后,如果不使用组合贷,而纯使用商业贷,那么月供是多少呢?
容易大致计算出:m=37*y (可以看到,纯商业贷的月供比组合贷的月供贵大约800元,接近1000元)
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。如果你想了解更多相关内容请查看下面相关链接