首页 > 其他分享 >制作房贷利息计算工具

制作房贷利息计算工具

时间:2023-03-23 16:23:33浏览次数:29  
标签:term prin 房贷 global int rate 利息 本金 制作

from decimal import Decimal from pickle import GLOBAL from easygui.boxes.derived_boxes import enterbox from prettytable import PrettyTable import copy #from dealFloat import float_deal      # Decimal格式 from decimal import ROUND_HALF_UP # 传入字符串金额得到2尾数的四舍五入金额 (0~4舍,5~9入) def float_deal(f):     data = Decimal(str(f)).quantize(Decimal('0.00'),ROUND_HALF_UP) #print(data)     return data

import easygui as a def getnum():   global num   global endnum   global principal   global term_rate   global day_rate   global repayPattern   global line   Msg='请输入贷款信息'   Title='利率(公积金:0.0275(5年内)或0.0325(5年外)商贷:0.0625'   Fields=['贷款多少年(单位/年):','计划还款几年还清(单位/年):','贷款多少钱(单位/万元):', '利率(0.0275-0.0625):']   numlist=a.multenterbox(Msg,Title,Fields, values=())   num=(eval(numlist[0]))*12   endnum=(eval(numlist[1]))*12#提前多少年还款   principal=(eval(numlist[2]))*10000   #print("利率(公积金:0.0275(5年内)或0.0325(5年外)或0.03575(上浮百分之10%),商贷:0.0625")   annual_rate = Decimal(eval(numlist[3]))   #principal = Decimal('500000.00')     # 本金   #annual_rate = Decimal('0.0325')     # 年化利率   term_rate = annual_rate / Decimal('12')  # 月利率   day_rate = annual_rate / Decimal('12') /Decimal('30')  # 日利率         repayPattern = {       "MCEP": "等额本金,按月付息",             # 借款总利息最低       "MCEI": "等额等息,按月付息"   }       line = PrettyTable(["期数", "还款本息", "当期本金", "当期利息","剩余本金","还款方式"])   #line.align["期数"] = "1"  # 以期数字段左对齐 #line.padding_width = 2    # 填充宽度(字段间隔)py

      # "等额本金,按月付息" def get_MCEP(num,endnum):     ## 每月本金相同,利息递减,相当于剩余本金的利息,每期利息固定:上一期本金*利率     global MCEPmsg1     global MCEPmsg2     global MCEPmsg3     global MCEPmsg4     global MCEPmsg5     #show = copy.deepcopy(line)     term_prin = float_deal(principal / num)               # 每期还本金(2位小数)     prin = principal     total_int = float_deal(0.0)     MCEPzlx=0     for i in range(1, num + 1):         term_int = float_deal(prin * term_rate)          # 每期利息固定:上一期本金*利率         # 如果是最后一期,还款本金为上一期的剩余本金;         if i == num:             term_prin = prin         if i < endnum+1:             MCEPzlx=MCEPzlx+term_int             MCEPsybj=prin-term_prin         if i == 1:             MCEPterm_amt=term_prin + term_int         term_amt = term_prin + term_int         prin = prin - term_prin                  # 剩余本金=上期剩余本金-当期还本金         #show.add_row([i, term_amt, term_prin, term_int, prin,'等额本金'])         total_int = float_deal(total_int +  term_int)     MCEPmsg1=('等额本金总利息为:'+str(total_int))     MCEPmsg2=("提前还款总利息:"+str(MCEPzlx))     MCEPmsg3=("剩余本金:"+str(MCEPsybj))     MCEPmsg4=("月供还款:"+str(MCEPterm_amt))     #计算总花费     zhf1= principal+MCEPzlx     MCEPmsg5=("总共支付金额:"+str(zhf1))     #print(show)     # "MCEI": "等额本息,按月付息" def get_MCEI(num,endnum):     # 本金+利息保持相同,本金逐月递增,利息逐月递减,月还款数不变。     global MCEImsg1     global MCEImsg2     global MCEIterm_amt     global MCEImsg3     global MCEImsg4     global MCEImsg5     #show = copy.deepcopy(line)     term_amt = float_deal((principal*term_rate*(1+term_rate)**num)/((1+term_rate)**num-1))      # 每期还款总额       **是幂运算     prin = principal     total_int = float_deal(0.0)     MCEIzlx=0     for i in range(1, num + 1):         term_int = float_deal(prin * term_rate)        # 每期利息计算固定:上一期本金*利率         term_prin = term_amt - term_int# 如果是最后一期,还款本金为上一期的剩余本金;         if i < endnum+1:             MCEIzlx=MCEIzlx+term_int             MCEIsybj=prin - term_prin         if i == num:             term_prin = prin         if i == 1:             MCEIterm_amt=term_prin + term_int         term_amt = term_prin + term_int         prin = prin - term_prin             # 剩余本金=上期剩余本金-当期还本金         #show.add_row([i, term_amt, term_prin, term_int,prin,'等额等息'])         total_int = total_int +  term_int     MCEImsg1=('等额本息总利息为:'+str(total_int))     MCEImsg2=("提前还款总利息:"+str(MCEIzlx))     MCEImsg3=("剩余本金:"+str(MCEIsybj))     MCEImsg4=("月还款:"+str(MCEIterm_amt))     #计算总花费     zhf2= principal+MCEIzlx     MCEImsg5=("总共支付金额:"+str(zhf2))     #print(show)     if __name__ == '__main__':     #print("================分===============割===============线===============")     try:         getnum()         get_MCEP(num,endnum)     #print("================分===============割===============线===============")          # 等额本金,按月付息         get_MCEI(num,endnum)         a.msgbox(msg='总贷款:'+str(principal)+'\n\n'+MCEPmsg1+'\n'+MCEPmsg2+'\n'+MCEPmsg5+'\n'+MCEPmsg4+'\n'+MCEPmsg3+'\n\n'+MCEImsg1+'\n'+MCEImsg2+'\n'+MCEImsg5+'\n'+MCEImsg4+'\n'+MCEImsg3, title='结果', ok_button='OK ', image=None, root=None)          # 等额本息,按月付息     except Exception as e:         print(e)        

标签:term,prin,房贷,global,int,rate,利息,本金,制作
From: https://www.cnblogs.com/zhujunsheng/p/17247905.html

相关文章

  • Ubuntu 20.04 制作Linux系统的qcow2镜像
    本篇以制作kali2023操作系统为例,在一台Ubuntu20.04的服务器上制作2GB内存,30GB硬盘的qcow2镜像,如果是VM虚拟机需要开启CPU硬件虚拟化。1.安装依赖软件aptinstallqemu-......
  • Docker镜像的制作和管理
    一、镜像的制作方式​Docker镜像制作类似于虚拟机的镜像(模版)制作,即按照公司的实际业务需求将需要安装的软件、相关配置等基础环境配置完成,然后将其做成镜像,最后再批量从镜......
  • Cadence入门笔记(三):PCB封装制作
    新建文件首先打开allegro,选择新建一个Packgesymbol随后调整一下图纸的单位和边框大小扩展(把调整Extends可以把原点居中放置,原生只在左下角)为了调用之前设计好的pad文......
  • OpenStack使用ISO镜像安装虚拟机制作镜像模板(本文底稿原创,由ChatGPT润色)
    在OpenStack云平台中,使用ISO镜像安装虚拟机是非常常见的一种方式。本文将介绍如何在OpenStack中使用ISO镜像创建一个虚拟机,并将其制作成模板。第一步,我们需要将ISO镜像上......
  • 制作U盘头像图标
    title:如何制作U盘头像图标date:2023-03-1914:25:00categories:小技能tags:U盘如何制作U盘头像图标首先利用ico在线制作工具制作所需的iso文件,选择将要作......
  • 米尔一站式PCBA制作服务、贴片加工
    米尔PCBA服务米尔智能化SMT工厂致力于给客户提供从PCB制作、元器件采购、贴片加工到组装测试的一站式PCBA生产服务。米尔工厂位于深圳市龙华区,以先进的生产设备和管理系统......
  • ChatGPT的提示技巧:制作清晰有效的提示指南
    ChatGptprompts制作有效提示的具体技巧:清晰度:清晰简明的提示将有助于确保ChatGPT理解手头的主题或任务,并能够生成适当的响应。避免使用过于复杂或含糊不清的语言,并尽......
  • 制作学生信息管理系统
    1.系统简介需求:进入系统显示系统功能界面,功能如下:1、添加学员2、删除学员3、修改学员信息4、查询学员信息5、显示所有学员信息6、退出系统系统共6个功能,用户根据自......
  • 制作CentOS6基础镜像
    搭建私有云时需要制作一些操作系统的基础镜像,这里也有一些持巧,在这里记录下来以备忘。安装CentOS6操作系统这里没有太多好说的,我是从这里下载最小安装ISO进行安装的,安装......
  • 【小哥132】制作过孔-12
    制作过孔焊盘,添加到约束管理器里面        ......