背景
常常收到各個銀行電話推銷能夠辦理小額貸款/信用卡帳單分期/萬用金, 或者其餘亂七八糟的名字的產品. 遂問電銷人員, 大家這個最後年化利息多少? 這個時候, 通常銷售人員都直接回避這個問題, 美其名曰: 「咱們不收利息, 咱們只收取必定的手續費, 基於您這邊的良好信用, 如今您有一筆5萬的額度是能夠當即提現的, 能夠分1年還, 每個月只須要XXXX元」
可能不太懂的同窗, 聽到電銷的宣傳, 感受這利率還不算貴, 缺錢急用還挺划算的啊. 有可能直接被套路, 就接受了忽悠, 辦理了這個貸款/分期產品.html
下面我以浦發銀行實際例子來算一下, 相似產品最後年化利率究竟是多少.
如上圖所示, 是浦發銀行的貸款產品(萬用金), 能夠看到, 提現10000元, 分12期即分12個月還錢, 等額本息的還款方式, 每個月需還款929.51元. 初略地看, 你能夠會簡單的認爲這個利率就是, 一共還的錢爲929.5112, 而後借款本金爲10000元, 那麼年化利率即爲: (929.5112 - 10000)/10000100%=11.54% 感受彷佛不那麼高.
然而, 事實上, 這種算法是有問題的, 由於你借款的本金10000元, 並無享受到1年的期限, 之後每月都還了本金呀.
實際年化利率
咱們用網上常見的房貸/借款計算器來算一下, 若是按照年化11.54%來計算, 每個月的還款狀況應該以下, 即每月只須要等額本息還款886.34, 比929.51元少很多.
而若是每月還款929.51元的話, 其利率遠遠不止11.54%, 直接仍然用那個借款計算器大概估計一下. 貌似現有的網上的工具都只能正向算, 即已知利率和貸款本金計算還款計劃表, 沒有一個工具能從每個月還款額反推貸款利率, 初步屢次嘗試獲得以下逼近的結果.
能夠看到, 年化利率達到了20.66%, 比以前預想一想象中多了太多了.
因此電話銷售在推銷的時候, 每每不會直接告訴你這個年化利率, 由於過高了, 說了你可能不太會接受. 而這個利率究竟是怎麼計算來的呢? 爲啥會有先後這麼大的差異? 實際上, 你借款本金1W並無享受全年, 而是隻享受到了1個月, 由於1個月以後, 你就有歸還部分本金(和利息).
推導方法
咱們來正向推到一下這個等額本息利率的計算過程.
假設借款總額爲A, 月利率爲R, 每個月還款額爲M, 抓住一點, 欠款總額爲本金(1+月利率)則有:
(原本是markdown渲染的公式, 無奈結合table轉成html以後太醜了, 因而就用截圖的方式了, 點開後查看大圖)
因此, 能獲得第i個月的欠款狀況, 上面的公式能夠簡化一下, 由於被減數M後邊的是一個等比數列, 獲得第i個月後, 欠款總額爲
若是知道月利率R, 要計算每月還款額也能夠直接經過上面這個公式獲得,
以上述浦發銀行的這個例子爲準, 其中A=10000, M=929.51, 代入上面的公式就能夠算出R的值.
不太好直接解方程, 本身寫了段小代碼迭代搜索一下能算出來.
貌似這裏能出一道給程序猿的面試題目了, 哈哈. 碼農朋友們, 看看有哪些方法可以算出來? (敲黑板) 我這邊暫時不公佈本身寫的這段代碼, 看看你們有思路?
後面有空能夠寫個小程序, 供你們使用.
經過計算獲得, 借款10000元, 每個月還款額度爲929.51元的狀況下, 月利率爲0.017即1.7%, 年化利率即爲 20.65% 基本上與文首查到的一致. 月利率出來以後, 還款計劃表也就天然而然可以出來了.面試
>>> monthRate = calcMonthRate(12, 10000, 929.51) >>> print monthRate0.0172138214111 >>> print monthRate * 120.206565856934 >>> schedules = repaymentSchedules(12, 10000, monthRate) >>> for s in schedules: print s ... [1, '929.49', '172.14', '757.35', '9242.65'] [2, '929.49', '159.10', '770.39', '8472.26'] [3, '929.49', '145.84', '783.65', '7688.61'] [4, '929.49', '132.35', '797.14', '6891.47'] [5, '929.49', '118.63', '810.86', '6080.61'] [6, '929.49', '104.67', '824.82', '5255.79'] [7, '929.49', '90.47', '839.02', '4416.77'] [8, '929.49', '76.03', '853.46', '3563.31'] [9, '929.49', '61.34', '868.15', '2695.16'] [10, '929.49', '46.39', '883.10', '1812.06'] [11, '929.49', '31.19', '898.30', '913.76'] [12, '929.49', '15.73', '913.76', '-0.00']
期數 還款本息 利息 本金 剩餘本金
1 929.51 172.17 757.34 9242.66
2 929.51 159.13 770.38 8472.28
3 929.51 145.87 783.64 7688.64
4 929.51 132.38 797.13 6891.51
5 929.51 118.65 810.86 6080.65
6 929.51 104.69 824.82 5255.84
7 929.51 90.49 839.02 4416.82
8 929.51 76.05 853.46 3563.35
9 929.51 61.35 868.16 2695.19
10 929.51 46.40 883.11 1812.09
11 929.51 31.20 898.31 913.78
12 929.51 15.73 913.78 0.00
能夠看出, 上面的還款計劃表跟最開始網上經過房貸計算器獲得的一致, 咱們再來看看, 招行的有個現金分期業務.
上面的分期費率12期, 0.75%(表面的月息=(327012-36000)/36000/12), 申請分期36000, 每個月還款3270. 經過上面的公式, 咱們來看一下實際的費率狀況, 月息至關於1.35%, 年利率 16.2%, 比表面的年息(0.75%12=9%)高很多.算法
>>> calcMonthRate(12, 36000, 3270) 0.013513565063476562 >>> calcMonthRate(12, 36000, 3270)*12 0.16216278076171875
因此, 朋友們, 不要被表面現象所迷惑, 不要輕易被套路. 另外, 碼農朋友們, 思考一下前面留出的問題哈, 看看你們都有什麼方法來算.
歡迎留言討論.小程序