真实的手续费率(或利率)需要用借款方实际付出的手续费(或利息)来计算;如果有需要额外计算资金时间价值的还款方式(如在借款时一次性付清利息)或借款方式(如每期定时借款),还需将所有资金折算到同一时间价值模型中,才可比较和计算资金的真实价值。

"""
1. 手续费即利息,手续费率即利率。
2. 要以借入方实际付出的手续费作为计算真实利率的基础,不能以借出方显示的手续费率作为计算其他利率的基础。
3. 对于大部分金融机构:(显示的)每期手续费率(%) = 每期手续费 / 本金 * 100,但借入方实际付出的手续费率比这高;总手续费 = 每期手续费 * 期数,该方法没有计算手续费的时间价值。
4. 为什么每期分期手续费和总续费看起来低,而实际付出的利率高?因为还款通常是每期定额还款,
(或者定每期本金变每期手续费和每期总额,或者定总额变本金和手续费,或者三者都固定)
所以越靠前还款的期间本金的借用时间越短,越靠后的还款期间本金的借用时间越长,折算之后的真实利率就高了。
5. 由于日利率较小,通常扩大10000倍表示,即表示为万分数(‱),
月利率和年利率通常扩大100倍表示,即表示为百分数(%)。
6. 以下计算采用支付宝借呗花呗、微信微粒贷、京东金条(按日计息)的原则来统一计算标准。
因为上述三类小额贷款给出的计算方法遵循两大原则:一,借了多少钱借了多久就付多少利息;
二,在遵循第一条原则的前提下,根据还款方式的不同,从借出方的角度出发,
形成了只计算本金的时间价值,即对本金计算利息,不计算手续费的时间价值的计算方法。
""""在每个实现单独功能的程序块中要将变量、列表等初始化,以免重名而错误调用。"def hc2hcr(handling_charge, capital, n):"""精确,(每期)手续费 转 (每期)手续费率(%),前提:每期等额偿还本金及利息(即手续费)""""""正确算法:"""m = 0for i in range(1, n + 1):m += ihandling_charge_rate = (handling_charge * n ** 2) / (capital * m) * 100"""错误算法:"""# handling_charge_rate = handling_charge / capital * 100return handling_charge_ratedef hc2dr(handling_charge, capital, n):"""近似,(每期)手续费 转 日利率(‱),前提:每期等额偿还本金及利息(即手续费)"""day_rate = hc2hcr(handling_charge, capital, n) / 30 * 100return day_ratedef hc2ar(handling_charge, capital, n):"""近似,(每期)手续费 转 年利率(%),前提:每期等额偿还本金及利息(即手续费)"""annual_rate = hc2hcr(handling_charge, capital, n) * 12return annual_ratedef hcr2dr(handling_charge_rate):"""(每期)手续费率(%) 转 日利率(‱)"""day_rate = handling_charge_rate / 30 * 100return day_ratedef hcr2ar(handling_charge_rate):"""(每期)手续费率(%) 转 年利率(‱)"""annual_rate = handling_charge_rate * 12return annual_ratedef dr2ar(day_rate):"""日利率(‱) 转 年利率(%)"""annual_rate = day_rate * 365 / 100return annual_rateprint('交通分期,每期等额偿还本金及手续费')
num = [3, 6, 9, 12, 18, 24]
handling_charge = [42.51, 36.57, 32.91, 32.91, 32.91, 32.91]
capital = 4572.04
handling_charge_rate = []
dr = []
ar = []
if len(num) == len(handling_charge):for item in num:# 属于每期等额偿还本金及手续费的情况,将(每期)分期手续费转化为实际(每期)分期手续费率(%)index = num.index(item)handling_charge_rate.append(hc2hcr(handling_charge=handling_charge[index], capital=capital, n=item))for hcr in handling_charge_rate:# 将(每期)分期手续费率(%)转化为日利率(‱)及年利率(%)dr.append(hcr2dr(hcr))ar.append(hcr2ar(hcr))for index in range(len(num)):print('若分%s期,则实际每期手续费率为:%.2f%%,日利率为:%.2f‱,年利率为:%.2f%%'% (num[index], handling_charge_rate[index], dr[index], ar[index]))
else:print('期数有错')
print()print('招商分期,每期等额偿还本金及手续费')
num = [2, 3, 6, 10, 12, 18, 24, 36]
handling_charge = [51.88, 46.69, 38.91, 36.31, 34.24, 35.28, 35.28, 35.28]
capital = 5187.59
handling_charge_rate = []
dr = []
ar = []
if len(num) == len(handling_charge):for item in num:# 属于每期等额偿还本金及手续费的情况,将(每期)分期手续费转化为实际(每期)分期手续费率(%)index = num.index(item)handling_charge_rate.append(hc2hcr(handling_charge=handling_charge[index], capital=capital, n=item))for hcr in handling_charge_rate:# 将(每期)分期手续费率(%)转化为日利率(‱)及年利率(%)dr.append(hcr2dr(hcr))ar.append(hcr2ar(hcr))for index in range(len(num)):print('若分%s期,则实际每期手续费率为:%.2f%%,日利率为:%.2f‱,年利率为:%.2f%%'% (num[index], handling_charge_rate[index], dr[index], ar[index]))
else:print('期数有错')
print()print('广发分期,每期等额偿还本金及手续费')
num = 12
handling_charge = 111.36
capital = 19200
# 属于每期等额偿还本金及手续费的情况,将(每期)分期手续费转化为实际(每期)分期手续费率(%)
handling_charge_rate = hc2hcr(handling_charge=handling_charge, capital=capital, n=num)
# 将(每期)分期手续费率(%)转化为日利率(‱)及年利率(%)
dr = hcr2dr(handling_charge_rate)
ar = hcr2ar(handling_charge_rate)
print('若分%s期,则分期手续费率为:%.2f%%,日利率为:%.2f‱,年利率为:%.2f%%' % (num, handling_charge_rate, dr, ar))
print()print('中信分期,每期等额偿还本金,手续费在第一期末一次性付清')
num = [6, 9, 12, 18, 24, 36]
# 假定资金的年平均收益率取为3.5%
average_annual_rate = 3.5
month_rate = average_annual_rate / 100 / 12print('单笔分期:')
total_handling_charge_single = [57.55, 82.01, 105.03, 161.87, 215.82, 323.73]
capital_single = 1199
handling_charge_rate_single = []
handling_charge_single = []
dr_single = []
ar_single = []
print('当个人资金年收益率为:%.2f%%,本金为:%.2f时' % (average_annual_rate, capital_single))
if len(num) == len(total_handling_charge_single):for item in num:index = num.index(item)# 因为手续费在第一期末一次性付清,所以应按照复利计息方式将总手续费折算成每期等额手续费handling_charge_single.append(total_handling_charge_single[index] * month_rate * (1 + month_rate) ** (item - 1)/ ((1 + month_rate) ** item - 1))# 将总手续费折算后即属于每期等额偿还本金及手续费的情况,# 可用“hc2hcr”函数将(每期)分期手续费转化为实际(每期)分期手续费率(%)handling_charge_rate_single.append(hc2hcr(handling_charge=handling_charge_single[index],capital=capital_single, n=item))for hcr in handling_charge_rate_single:# 将(每期)分期手续费率(%)转化为日利率(‱)及年利率(%)dr_single.append(hcr2dr(hcr))ar_single.append(hcr2ar(hcr))for index in range(len(num)):print('若分%s期,则折算每期手续费为:%.2f,实际每期手续费率为:%.2f%%,日利率为:%.2f‱,年利率为:%.2f%%'% (num[index], handling_charge_single[index], handling_charge_rate_single[index],dr_single[index], ar_single[index]))
else:print('期数有错')print('账单分期:')
total_handling_charge_bill = [566.62, 807.43, 1034.08, 1593.61, 2124.82, 3187.22]
capital_bill = 11804.53
handling_charge_rate_bill = []
handling_charge_bill = []
dr_bill = []
ar_bill = []
print('当个人资金年收益率为:%.2f%%,本金为:%.2f时' % (average_annual_rate, capital_bill))
if len(num) == len(total_handling_charge_bill):for item in num:index = num.index(item)# 因为手续费在第一期末一次性付清,所以应按照复利计息方式将总手续费折算成每期等额手续费handling_charge_bill.append(total_handling_charge_bill[index] * month_rate * (1 + month_rate) ** (item - 1)/ ((1 + month_rate) ** item - 1))# 将总手续费折算后即属于每期等额偿还本金及手续费的情况,# 可用“hc2hcr”函数将(每期)分期手续费转化为实际(每期)分期手续费率(%)handling_charge_rate_bill.append(hc2hcr(handling_charge=handling_charge_bill[index],capital=capital_bill, n=item))for hcr in handling_charge_rate_bill:# 将(每期)分期手续费率(%)转化为日利率(‱)及年利率(%)dr_bill.append(hcr2dr(hcr))ar_bill.append(hcr2ar(hcr))for index in range(len(num)):print('若分%s期,则折算每期手续费为:%.2f,实际每期手续费率为:%.2f%%,日利率为:%.2f‱,年利率为:%.2f%%'% (num[index], handling_charge_bill[index], handling_charge_rate_bill[index],dr_bill[index], ar_bill[index]))
else:print('期数有错')
print()print('京东白条(还款时分期):')
num = [3, 6, 12, 24]
handling_charge = 11.63
capital = 1550.43
handling_charge_rate = []
dr = []
ar = []
for i in num:# 将(每期)分期手续费转化为(每期)分期手续费率(%)handling_charge_rate.append(hc2hcr(handling_charge=handling_charge, capital=capital, n=i))
for hcr in handling_charge_rate:# 将(每期)分期手续费率(%)转化为日利率(‱)及年利率(%)dr.append(hcr2dr(hcr))ar.append(hcr2ar(hcr))
for index in range(len(num)):print('若分%s期,实际每期手续费率为:%.2f%%,则日利率为:%.2f‱,年利率为:%.2f%%'% (num[index], handling_charge_rate[index], dr[index], ar[index]))
print()print('蚂蚁借呗:')
# 日利率(‱)转年利率(%)
day_rate = 3.5
dr2ar(day_rate)
print('当日利率为:%.2f‱时,年利率为:%.2f%%' % (day_rate, dr2ar(day_rate)))
print()print('微信微粒贷:')
# 日利率(‱)转年利率(%)
day_rate = 2.5
dr2ar(day_rate)
print('当日利率为:%.2f‱时,年利率为:%.2f%%' % (day_rate, dr2ar(day_rate)))
print()print('京东金条按日计息:')
# 日利率(‱)转年利率(%)
day_rate = 5 * 0.9
dr2ar(day_rate)
print('当日利率为:%.2f‱时,年利率为:%.2f%%' % (day_rate, dr2ar(day_rate)))print('京东金条按月计息:')
# 手续费转年利率(%),不计算手续费的时间价值
handling_charge_rate = hc2hcr(handling_charge=75, capital=10000, n=3)
print('金条按月计息年利率:%.2f%%' % (hcr2ar(handling_charge_rate)))
print()

其中两个最关键的考虑资金时间价值的公式如下,第一个公式用函数“hc2hcr”来定义,第二个公式是中信分期中的“total_handling_charge_single[index] * month_rate * (1 + month_rate) ** (item - 1) / ((1 + month_rate) ** item - 1)”。

各个银行和金融机构的真实利率计算结果如下:



从计算结果可以看到,真实的手续费率(或利率)一般在15%左右,大概比这几年真实的通货膨胀高50%左右。而我们一般买的理财产品(假设为5%左右的年收益率)要比真实通胀低50%左右。从前一条结果看出信用卡能不分期就别分期,或者是网上借钱能不借就不借。从第二条结果可以看出还是要好好工作努力挣钱,通过工作挣钱才是正道,而不是用钱挣钱(对于普通人而言)。

转载于:https://www.cnblogs.com/chizi15/p/9808329.html

用借款方实际付出的手续费(或利息)计算真实的手续费率(或利率)相关推荐

  1. 用借款方实际付出的手续费(或利息)计算真实的手续费率(或利率),或快速估算年利率

    年利率快速估算 由于一般信用卡分期或者网上借贷通常采用每月等额本息的偿还方式,可以采用如下方法快速估算年利率:总利息 / 本金 × 2 × 100.因为第1月和第12月的本息还款,相当于这两笔钱只用了 ...

  2. 蚂蚁借呗总利息计算——每月等额(等额本息)

    注:花了半天研究了一下蚂蚁借呗的利息计算,起因是一次以为比较简单的计算发现借呗上实际利息比算出来的要多好几块钱,这就有点疑惑了. 说明: 特别说明的只有两点 利息分两部分:第一部分,距最近一个还款日期 ...

  3. 1、模拟蚂蚁借呗—利息计算

    模拟蚂蚁借呗-利息计算 程序的源代码如下: /*2017年6月11日10:15:49功能:计算蚂蚁借呗的利息缺点:本程序没有判断年份是否为闰年借款当日的时间需要手动输入,年份不能以特定的格式显示没有还 ...

  4. 分期利息计算——考虑免息日期和多利率设定的思路设计和代码实现

    文章目录 前言 需求描述 思路描述 代码实现 利率规则实体 工具方法-计算第 j 阶段前(0到j-1)阶段一共几天 测试方法 前言 利息计算是一种常见的需求,尤其在现在这种分期还款场景比较常见的情况下 ...

  5. 大数加法(ascll转换),利息计算(数组,sizeof与循环运用)

    一,大数加法 大数加法顾名思义,在超过long int 类型所承受的的较大数之间的加法运算,主流方法就是对数进行类型转换,如转换成字符串字符数组再对其依次相加,较为相识方式就是对10不断取余数,余数相 ...

  6. 利息计算的方式及实现

    利息计算的理论和代码实现. import org.apache.commons.math3.analysis.solvers.BrentSolver;public class InterestCalc ...

  7. 突然想分析下房贷利率及利息计算

    由于博主近期有购房意向,毕竟是首套房,突然对LPR感兴趣了 其实...博主也是想利益最大话,所以就稍微研究了一下LPR及利息计算. 只要你认真看完这篇文章,各位观众也能轻松了解自己的钱花哪去了 首先, ...

  8. 有用的东东---信用卡利息计算过程

    假设--帐单日为7日,到期还款为25日,3月1日消费3000元,以后再无消费或取现,每月只还最低还款额(不多还). 还款方式一:始终在到期还款日(也即25日)还款. 1.到3月7日帐单显示,应还金额为 ...

  9. HDOJ(HDU) 1994 利息计算(简单题目)

    Problem Description 为自行解决学费,chx勤工俭学收入10000元以1年定期存入银行,年利率为3.7% .利率 按年计算,表示100元存1年的利息为3.7元.实际上有时提前有时推迟 ...

最新文章

  1. STM32 电机教程 11 - BLDC 6 步方波开环速度控制
  2. BAPI_BILLINGDOC_CANCEL1解析
  3. jQuery学习笔记:事件
  4. Docker容器开机自动启动
  5. Android P(2)---计划概览
  6. ajax获取session值_cookie和session基础知识学习
  7. Asp.net Core 添加 EF 工具并执行初始迁移错误解决方法(Add-Migration Initial---Build failed.)
  8. oracle 循环select查询的结构集,执行insert到指定表保存
  9. 2017/12/30 GUI和动态代理
  10. 绝对干货!百度文档 用python一键下载
  11. KVM磁盘格式转换,raw转qcow2
  12. 项目质量管理可能存在的问题及应对策略
  13. 36氪专访| 友盟+CEO朋新宇:大数据赛道会越来越宽,同时也会越来越头部化
  14. Servlet技术(第三章)
  15. TypeScript基础之类型推断
  16. 香港中文大学计算机系直博面试经验
  17. XPDL与WS-BPEL的比较之三:人工活动
  18. 八月暑期福利,10本Python热门书籍免费送!
  19. 大数据学习笔记1.3 Linux目录操作
  20. MySQL锁与脏读、不可重复读、幻读详解

热门文章

  1. yoctoqemu(十二)openssh
  2. oracle10g精简版配置,oracle 10g 精简版安装步骤分享
  3. springboot 集成beetl
  4. android客户端Netty部署SSL/TLS
  5. python作业-5
  6. 河海大学计算机辅助,黄瑞
  7. 修复完浏览器后每次打开ie8都会自动弹出管理加载项,请问怎样才能不弹出
  8. Lecture5-3Effective number of hypotheses
  9. 基于Echarts实现可视化数据大屏大数据平台车辆监控系统HTML模板
  10. centos 7.6 安装Netbackup 9.1