两个贷款计算器


贷款计算器

都知道复利,但实际上只有算出来才知道复利多么牛逼。

贷款还款额度计算可以参考:http://www.rong360.com/calculator/gongjijin.html

房贷20-30年差额

按照20年和30年差额投资。

# -*- coding: utf-8 -*-
import math;

rate=3.5 #投资年利率
total=1200000 #贷款额度
year30=5222.48 #30年贷款,等额本息还款,月供
year20=6806.35 #20年贷款,等额本息还款,月供

# 工具函数
su=lambda x: "%.2f万"%(x/10000.0) #格式化,单位为万元
g=lambda base,years: base*math.pow(1+rate/100.0,years) #投资复利计算

last10=year30*12*10 #最后10年,按照30年贷款需要支付的金额
user_pay= year20 * 12 * 20 #用户按照20年贷款,支付的总金额
user_extra= user_pay - total #个人按20年支付的利息
agent_pay= year30 * 30 * 12 #中介按照30年贷款,支付的总金额;银行收到的金额.
agent_extra=agent_pay - total #中介按30年支付的利息
investment= (year20 - year30) * 12 #中介每年可用于投资的金额

print "计算中介的收益..."
print "中介: 前20年差额用来投资,可用于投资的资金每月%s,即每年%s"%(investment / 12, investment)
print "中介: 预计投资回报率%s%%"%rate

print "中介: 计算前20年收益"
invest_got= 0#前20年投资总收益
for i in range(20,0,-1):
    got=g(investment, i)
    invest_got= invest_got + got
    print "    第%s年的本金%s%s年后复利变为%s"%(20 - i + 1, investment, i, got)
print "中介: 前20年利率%s%%, 额外总收益%s"%(rate, su(invest_got))

print "中介: 计算后10年收益"
invest_pure=invest_got#纯收益
for i in range(0,10,1):
    spend=year30*12
    got=g(invest_pure, 1)-invest_pure
    left = invest_pure-spend+got
    print "    第%s年的本金%s, 支出%s, 收益%s, 剩余%s"%(20+i+1,su(invest_pure), su(spend), su(got), su(left))
    invest_pure=left

print "中介: 前20年利率%s%%, 额外总收益%s, 最后10年支出%s, 纯收益%s"%(rate, su(invest_got), su(last10), su(invest_pure))
print "中介: 贷款%s, 总支付%s, 利息%s, 纯收益%s"%(su(total), su(agent_pay), su(agent_extra), su(invest_pure))

print ""
print "计算个人支出..."
print "贷款%s, 按20年贷款支出%s, 利息%s"%(su(total), su(user_pay), su(user_extra))

print ""
print "计算合并收益"
mpay=user_pay-invest_pure
msub=agent_pay-mpay
mextra=mpay-total
print "1. 投资利率%s%%, 投资方式20-30年差额(20年月供%s, 30年月供%s, 每月投资%s)"%(rate, year20, year30, investment/12)
print "2. 借贷%s, 总还款%s, 利息%s. 本应还%s, 少还%s"%(su(total), su(mpay), su(mextra), su(agent_pay), su(msub))
print "3. 个人20年共支付%s(向银行借款%s,给银行利息%s,自己卡里还有%s)."%(su(user_pay), su(total), su(mextra), su(invest_pure))
print "备注: 不计算通胀,货币贬值,公积金存款利率和投资利率差"

公积金贷款

数据改成:

rate=5 #投资年利率
total=1200000 #贷款额度
year30=5222.48 #30年贷款,等额本息还款,月供
year20=6806.35 #20年贷款,等额本息还款,月供

运算结果如下:

计算合并收益
1. 投资利率5%, 投资方式20-30年差额(20年月供6806.35, 30年月供5222.48, 每月投资1583.87)
2. 借贷120.00万, 总还款134.69万, 利息14.69万. 本应还188.01万, 少还53.32万
3. 个人20年共支付163.35万(向银行借款120.00万,给银行利息14.69万,自己卡里还有28.66万).
备注: 不计算通胀,货币贬值,公积金存款利率和投资利率差

商业贷款基准利率

把上面的数字改成:

rate=5 #投资年利率
total=440000 #贷款额度
year30=2335.20 #30年贷款,等额本息还款,月供
year20=2879.55 #20年贷款,等额本息还款,月供

结果:

计算合并收益
1. 投资利率5%, 投资方式20-30年差额(20年月供2879.55, 30年月供2335.2, 每月投资544.35)
2. 借贷44.00万, 总还款67.41万, 利息23.41万. 本应还84.07万, 少还16.65万
3. 个人20年共支付69.11万(向银行借款44.00万,给银行利息23.41万,自己卡里还有1.70万).
备注: 不计算通胀,货币贬值,公积金存款利率和投资利率差

组合贷款

数字改成:

rate=5 #投资年利率
total=1640000 #贷款额度
year30=7557.67 #30年贷款,等额本息还款,月供
year20=9685.9 #20年贷款,等额本息还款,月供

结果:

计算合并收益
1. 投资利率5%, 投资方式20-30年差额(20年月供9685.9, 30年月供7557.67, 每月投资2128.23)
2. 借贷164.00万, 总还款202.10万, 利息38.10万. 本应还272.08万, 少还69.97万
3. 个人20年共支付232.46万(向银行借款164.00万,给银行利息38.10万,自己卡里还有30.36万).
备注: 不计算通胀,货币贬值,公积金存款利率和投资利率差

GO版本

package main

import (
    "fmt"
    "math"
)

const (
    杨成立投资年利率 = 5

    杨亚首付   = 19.2 * 10000
    杨亚方案月供 = 2541.0

    杨成立首付   = 16 * 10000.0
    杨成立方案月供 = 2088.99

    //杨亚方案月供 = 9685.9
    //杨亚首付 = 16 * 10000.0
    //杨成立方案月供 = 7557.67
)

func 格式化为万元(x float64) string {
    return fmt.Sprintf("%.2f万", x/10000.0)
}

func 复利(金额, 年数 float64) float64 {
    return 金额 * math.Pow(1+杨成立投资年利率/100.0, 年数)
}

func main() {
    首付差额 := 杨亚首付 - 杨成立首付
    首付差额20年后金额 := 复利(首付差额, 20)
    fmt.Println(fmt.Sprintf("首付差额%v存20年后是%v", 格式化为万元(首付差额), 格式化为万元(首付差额20年后金额)))

    每年可投资差额 := 12 * (杨亚方案月供 - 杨成立方案月供)
    fmt.Println("每年可投资差额为", 每年可投资差额)

    var 投资总收益 float64
    for i := 20 - 1; i >= 0; i-- {
        投资收益 := 复利(每年可投资差额, float64(i+1))
        投资总收益 += 投资收益
        fmt.Println("前20年, 第", 20-i, "年投资最后收益", 格式化为万元(投资收益), "总收益", 格式化为万元(投资总收益))
    }
    投资总收益 += 首付差额20年后金额
    fmt.Println("前20年剩余钱为" + 格式化为万元(投资总收益))

    后10年每年支出 := 杨成立方案月供 * 12
    for i := 0; i < 10; i++ {
        当年投资收益 := 投资总收益 * 杨成立投资年利率 / 100.0
        投资总收益 -= 后10年每年支出
        投资总收益 += 当年投资收益
        fmt.Println("后10年, 第", 20+i+1, "年, 支出", 格式化为万元(后10年每年支出), ", 当年收益", 当年投资收益, ", 剩余", 格式化为万元(投资总收益))
    }

    fmt.Println("两个方案在利率", 杨成立投资年利率, "%时, 最后能赚", int(投资总收益), "元")
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

winlinvip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值