按日计息,按月付息,到期还本,求给个思路

hercules135 2016-01-13 01:08:29
现在有一个需求,给到期限,年利率,购买金额,购买日期,要求算出 总利润 每月回款数...

困扰我最大的问题是,是否要考虑闰年之类的...

在做金融计算的时候 变量类型是否都使用 decimal ? 利率是否也使用 decimal?

有没有做过金融方面的前辈帮忙指点一下
...全文
931 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
norrose 2016-01-26
  • 打赏
  • 举报
回复
还要注意: 利用double作为参数的构造函数,无法精确构造一个BigDecimal对象,需要自己指定一个上下文的环境,也就是指定精确位。而利用String对象作为参数传入的构造函数能精确的构造出一个BigDecimal对象; //存款 BigDecimal d = new BigDecimal(“88888”); //月利率,乘3计算季利率 BigDecimal r = new BigDecimal(“0.01875451”).mutiply(new BigDecimal(“3”)); //计算利息 BigDecimal i = d.mutiply(r)setScale(4,RoundingMode.HALF_EVEN); System.out.println("季利息是:" + i);
norrose 2016-01-26
  • 打赏
  • 举报
回复
我做P2P软件多年,变量、利率java中一直用bigdecimal; 我的心得: 1,除法运算,四舍六入考虑五(java中可以用RoundingMode.HALF_EVEN)。参考 http://lgcjar.iteye.com/blog/2273836 2,计算利率保留位数尽量多,根据计算金额位数来保留位数(比如1000000.00以内可以保留小数后8位) 3,界面显示2位,数据库保留3位,算法中保留4位; //存款 BigDecimal d = new BigDecimal(88888); //月利率,乘3计算季利率 BigDecimal r = new BigDecimal(0.00187545*3); //计算利息 BigDecimal i = d.mutiply(r)setScale(4,RoundingMode.HALF_EVEN); System.out.println("季利息是:" + i);
xuzuning 2016-01-13
  • 打赏
  • 举报
回复
按日计息 就与闰月没什么关系了,有一天算一天 按月付息 指定一个付息日就可以了 变量类型都应使用 decimal(2位小数), 利率使用 decimal(4位小数)
江南小鱼 2016-01-13
  • 打赏
  • 举报
回复
这些和编码本身没关系,是业务需求。 哥搞公用事业行业软件,设计金额decimal(18,2)这种类型,精确到分。
EdsionWang 2016-01-13
  • 打赏
  • 举报
回复
需求总归是有人提的,谁提的需求就去问他,毕竟是他说了算
xdashewan 2016-01-13
  • 打赏
  • 举报
回复
直接问你们公司财务
cheng2005 2016-01-13
  • 打赏
  • 举报
回复
你考虑的这些都和程序没有一毛钱关系,你需要去专业的金融甚至银行业论坛去问。
数据库设计说明全文共4页,当前为第1页。数据库设计说明全文共4页,当前为第1页。 数据库设计说明 数据库设计说明全文共4页,当前为第1页。 数据库设计说明全文共4页,当前为第1页。 第一部分: 引言 编写目的 本部分说明了本软件系统数据库的设计方法,下系统开发的程序员提供参考。 参考资料 《项目需文档》 第二部分: 外部设计 2.1 标识符和状态 数据库软件: MySQL 数据库名称: HelloBond 该数据库为本系统提供完整的数据支持。 2.2 使用它的程序 操作系统: Windows Server 2012 网络协议: TCP/IP 开发软件: phpMyAdmin 其他辅助软件: Mircrosoft Word等 2.3 约定 该数据库的关系一律采用驼峰命名法,将名称中各个单词组合起来。如果组合后的名称较长,则除了最后一个单词以外,其他单词均取首字母进行组合。 2.4 专门指导 系统采用jdbc来访问数据库,并通过java对数据库的访问进行了封装。如果所提供的功能不满足系统的要,可在数据库接口中添加新的方法以供整个系统调用。 2.5 支持软件 phpMyAdmin为本系统数据库提供了完善的支持,包括 数据查询 数据操作 数据库的启动、停止 数据的导入导出等 第三部分:结构设计 3.1 概念结构设计 表Customer: UserID[用户账号] Password[用户密码] Permission[用户权限] PEndDate[到期日期] 表BondInfo: Liscd [债券代码] - Abbrnme [债券简称] - 以深交所、上交所公布为准 。 Bndnme [债券全称] - 以交易所公布为准 Sctcd [市场代码] - '1'表示上海证券交易所;'2'表示深圳证券交易所 Curstu [目前状态] - '1'表示未到期,'2'表示已到期 Bndyer [债券年度] - 以YYYY表示 Bndtype [债券类型] - '01'表示国债;'02'表示公司债券; '03'表示企业债券; '04'表示地方政府债券;'05'表示集合债券 数据库设计说明全文共4页,当前为第2页。数据库设计说明全文共4页,当前为第2页。Bndexhp [债券期次] - 数据库设计说明全文共4页,当前为第2页。 数据库设计说明全文共4页,当前为第2页。 Varsortcd [品种类别编码 ] - 1 附息债 ;2 贴现债; 3 其它 Varsort [品种类别] - Orgid [发行机构编码] - Conme [发行机构全称] - Currency [币种] - AUD=澳大利亚元,CNY=人民币,EUR=欧元,GBP=英镑,HKD=港币,JPY=日元,SGD=新加坡元,THP=泰株,TWD=台币,USD=美元 Acisuquty [实际发行量] - 债券实际发行量指债券发行人发行债券时实际筹集到的资金总量。 Pooprc [发行价格] - 债券发行价格是指在发行市场(一级市场)上,投资者在购买债券时实际支付的价格 Ipotype [发行方式] - Term [期限] - 指债券从发行之日起至偿清本息之日止的时间,一般以年为单位。 Listdt [上市日期] - 开始在交易所进行交易的日期。以YYYY-MM-DD表示 Ipodt [发行日期] - 以YYYY-MM-DD表示 Matdt [到期日期] - 偿还本金的日期。以YYYY-MM-DD表示 Intrdt [计息日期] - 开始计提利息的日期。以YYYY-MM-DD表示 Stopdt [止息日期] - 以YYYY-MM-DD表示 Ipaytypcd [付息方式编码] - 1零息; 2周期付息; 3到期一次还本付息; 4 其它 Ipaytyp [付息方式] - 付息方式一般可分为零息、一次还本付息、周期付息。 Intrtypcd [计息方式编码] - 1零息;2 固定利率; 3浮动利率; 4 递进利率;5其它 Intrtyp [计息方式] - 计息方式一般可分为零息、固定利息、浮动利息、递进利息 Pintrt [年付息次数] - Intrrate [票面利率] - 指债券发行者预计一年内向投资者支付的利息占票面金额的比率(浮动率债券不具备固定票面利率) Bemkrate [基准利率] - 浮动利率债券的基准利率说明(文字型描述) Basrted [基本利差] - 浮动利率债券的利差数据 Parval [面值] - 指设定的票面金额代表发行人借入并且承诺于未来某一特定日期偿付给债券持有人的金额,其总和就是本金。 Crdrate [信用等级] - 国债没有该数据 Crdeem [可赎回性] - Y表示可赎回,N表示不可赎回(目前国债没有该数据) Rpchcls [赎回条款] -

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧