两个半小时,利息7块钱

16-Nov-2010收到建行的短信:

建行说
... 2010年11月15日发放 ... 期限120月,等额本金 ... 详情咨询95533

 
26-Nov-2010收到建行的短信:

建行说
... 将于2010年12月01日前扣款,还款额6073.00 ... 详情咨询95533
 

我自己计算过:

def dengEBenJin = {amount, month, r->
	(1..month).each{
		def fixed = amount / month
		def pay = fixed + ( amount - ( it - 1 ) * fixed ) * r
		println "Month ${it} : 总额: $amount, 本月还款: $pay"	
	}
} 
dengEBenJin(600000, 120, 0.003375)

它的结果为:

Month 1 : 总额: 600000, 本月还款: 7025.000000
Month 2 : 总额: 600000, 本月还款: 7008.125000
//...

 

为什么跟它说的6073.00不一致呢?

我拨打95533咨询,贷款金额和还款期数以及利率都跟贷款合同上写的完全一致,客服小姐大概不怎么会计算,她告诉我本金部分是600000/120=5000,利息部分会少于一个月的利息,因为第一次还款日跟贷款日相差不满一个月。

哦,原来如此。但是我还是要验证一下:

def dateLoaned = new Date('15-Nov-2010')
def dateOfFirstPayment = new Date('01-Dec-2010')

def amount = 600000, months = 120, rate = 0.003375
def fixedPayment = amount/months
def firstPayment = fixedPayment + amount * rate * ( dateOfFirstPayment - dateLoaned ) / 30

println firstPayment

结果是:

6080.000000
还是跟建行的计算结果6073.00不一致,相差7块钱。我推测:是不是建行不按“整天”来计算呢?经过数次使用“逼近法”试出:建行这笔贷款确切的入账时间应该是15-Nov-2010 02:30:00左右。有代码为证:

def dateLoaned = new Date( '15-Nov-2010 02:30:00' )
def dateOfFirstPayment = new Date( '01-Dec-2010 00:00:00' )

def amount = 600000, months = 120, rate = 0.003375
def fixedPayment = amount/months
def firstPayment = fixedPayment + amount * rate * ( dateOfFirstPayment.time - dateLoaned.time ) / ( 24*3600000 ) / 30

println firstPayment

打出的结果为:
6072.968750,最接近6073.00

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值