go代码实现买房贷款月供计算的方法

 更新时间:2019年04月09日 09:14:40   作者:stpeace  
今天小编就为大家分享一篇关于go代码实现买房贷款月供计算的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

贷款金额:100元(先以100元为例,来对比下公积金贷款和商业贷款)

公积金贷款年利率: 3.25%

商业贷款的年利率: 4.90%

贷款期限:360个月(30年)

还款方式:等额本息

计算公式:之前推导过, 用等比数列搞起即可

go代码如下:

package main
import (
  "fmt"
  "math"
)
func get_pmt(f_interest_rate float64, term_number int, principal int) float64 {
 compound_rate := math.Pow(1 + f_interest_rate, float64(term_number))
 pmt := float64(principal) * f_interest_rate * compound_rate / (compound_rate - 1)
 return pmt
}
func main(){
 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万房子的月供情况:

package main
import (
  "fmt"
  "math"
)
func get_pmt(f_interest_rate float64, term_number int, principal int) float64 {
 compound_rate := math.Pow(1 + f_interest_rate, float64(term_number))
 pmt := float64(principal) * f_interest_rate * compound_rate / (compound_rate - 1)
 return pmt
}
func get_month_provide(price int) {
 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)
}
func main(){
 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元)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • Golang 端口复用测试的实现

    Golang 端口复用测试的实现

    这篇文章主要介绍了Golang 端口复用测试的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Go语言中读取命令参数的几种方法总结

    Go语言中读取命令参数的几种方法总结

    部署golang项目时难免要通过命令行来设置一些参数,那么在golang中如何操作命令行参数呢?那么下面这篇文章就来给大家介绍了关于Go语言中读取命令参数的几种方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起看看吧。
    2017-11-11
  • golang中defer执行时机的案例分析

    golang中defer执行时机的案例分析

    这篇文章主要来通过一些案例和大家一起探讨一下golang中defer的执行时机,文中的示例代码讲解详细,对我们深入了解golang有一定的帮助,感兴趣的可以跟随小编一起学习一下
    2023-11-11
  • golang实战之truncate日志文件详解

    golang实战之truncate日志文件详解

    这篇文章主要给大家介绍了关于golang实战之truncate日志文件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-07-07
  • Go语言用map实现堆栈功能的方法

    Go语言用map实现堆栈功能的方法

    这篇文章主要介绍了Go语言用map实现堆栈功能的方法,实例分析了Go语言使用map操作堆栈的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • 浅析Go语言中数组的使用

    浅析Go语言中数组的使用

    数组用于在单个变量中存储相同类型的多个值,而不是为每个值声明单独的变量,这篇文章主要为大家介绍了Go语言中数组的简单使用,需要 的可以参考下
    2023-08-08
  • 基于Golang编写贪吃蛇游戏

    基于Golang编写贪吃蛇游戏

    这篇文章主要为大家学习介绍了Golang如何基于终端库termbox-go做个功能较简单的贪吃蛇游戏,文中的示例代码讲解详细,具有一定的学习价值
    2023-07-07
  • Go官方限流器的用法详解

    Go官方限流器的用法详解

    限流器是提升服务稳定性的非常重要的组件,本文主要介绍了Go官方限流器的用法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • 详解Go语言如何利用上下文进行并发计算

    详解Go语言如何利用上下文进行并发计算

    在Go编程中,上下文(context)是一个非常重要的概念,它包含了与请求相关的信息,本文主要来和大家讨论一下如何在并发计算中使用上下文,感兴趣的可以了解下
    2024-02-02
  • Golang之如何读取文件内容

    Golang之如何读取文件内容

    这篇文章主要介绍了Golang之如何读取文件内容问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06

最新评论