[原創]分期還款的名義利率與真實利率


有些銀行推銷的信用卡分期或貸款分期還款是這么計算的:

A: 貸款額

x: 名義月利率或者所謂的每月手續費

m: 還款期限,單位月

每月應還: (A+ x*A*m)/m

這個還款額把本金和利息平均在了每個月里, 但是仔細想想是有問題的:

還款中, 每個月都會還一部分本金, 但是利息還是按照總貸款額收取的, 也就是我已經還的那部分錢照樣被收取了利息。

所以實際利率是比它的名義利率要高, 但是要高多少呢, 可以計算一下:

如果按照正規的計算方法, 等額本息還款,計算公式應該是:

設y為實際月利率,

每月應還: A(y*(1+y)^m)/((1+y)^m-1)   推導過程可以參考 百度百科

讓兩個公式相等:

A(y*(1+y)^m)/((1+y)^m-1) = (A+ x*A*m)/m

=> (y*(1+y)^m)/((1+y)^m-1) - 1/m = x

 

求y, 不過這個方程看起來不太好解, 用python寫了個小程序, 迭代法求解:

#!/usr/bin/env python
import sys

def pm(y, m):
  return (y*(1+y)**m)/((1+y)**m-1)-1.0/m

def  calc(x, m):
  big = x
  while (1):
    lval = pm(big, m)
    if lval > x:
      break
    else:
      big+=0.001

  small = big - 0.001
  while (1):
    mid = (small+big)/2
    lval = pm(mid, m)
    if abs(lval-x)<0.00000001 or small > big or small == big:
      return mid
    elif  lval > x:
      big = mid
    else:
      small = mid

def usage():
  print 'Usage:'
  print 'calc.py nominal_rate(percent per month) period(months)'
  print 'Example: calc.py 0.5 36'

try:
  rate = float(sys.argv[1])/100
  month = int(sys.argv[2])
  real = calc(rate, month)*100
  print 'Real rate(month): ' + str(round(real, 4)) + '%'
  print 'Real rate(year) : ' + str(round(real*12, 4)) + '%'
except Exception,err:
  #print str(err)
  usage()

假設js給的月利率0.5%, 貸36個月

運行: ./calc.py 0.5 36

結果:

Real rate(month): 0.9235%
Real rate(year) : 11.0825%

可以看到真實年利率可以達到11.08, 與名義上的6%高了不止一點


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM