浏览 2194 次
锁定老帖子 主题:信用卡还款问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-03-29
最后修改:2009-03-31
final float MAX_DRAW_MONEY = 2500.0f; float poundage = 5.0f;//对于信息卡取现金的话,每笔是5.0元 float day_interest_rate = 0.0005f;//每天利率 int flag = 0;//银行存在最大取款金额数,产生取款笔数 float sum;//利息之和 float totalSum; int days; /** * 第一种还款方式 */ public float oneInterest(int startMonth,int endMonth,float amount){ if(sum != 0.0) sum = 0.0f; totalSum = amount; days = getDays(startMonth+1,endMonth); System.out.println(days); for(int i = 1;i <= days ;i++){ totalSum += totalSum * day_interest_rate; } return totalSum-amount; } public int getDays(int startMonth,int endMonth){ Calendar c1 = this.calendar(startMonth); Calendar c2 = this.calendar(endMonth); int day = 0; for(;c1.before(c2);c1.add(Calendar.DAY_OF_YEAR, 1)){ day++; } return day; } public Calendar calendar(int monthValue){ Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.MONTH, monthValue -1); calendar.set(Calendar.DAY_OF_MONTH, 1); return calendar; } /***==================上面第一种还款方式(刷卡)==========================***/ /** * 第二种还款方式(直接取现金还款)一般银行信用卡从你取现金开始记录到还款期为止,并且所需还款=利息+有几笔取款手续费 */ public float twoInterest(int startMonth,int endMonth,float amount){ if(sum != 0.0) sum = 0.0f; totalSum = amount; days = getDays(startMonth,endMonth); for(int i = 1;i <= days ;i++){ totalSum += totalSum * day_interest_rate; } flag = Math.round(amount/MAX_DRAW_MONEY); return totalSum-amount+flag*poundage; } public static void main(String[] args) { Count count = new Count(); System.out.println("第一种:"+count.oneInterest(4, 11, 4000)); System.out.println("第一种:"+count.twoInterest(4, 11, 4000)); } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-03-30
啥也不说
你们给银行做系统 钱是用float 和 double来计算的? |
|
返回顶楼 | |
发表时间:2009-03-30
Devin.Chenzx 写道 啥也不说
你们给银行做系统 钱是用float 和 double来计算的? 不差钱 |
|
返回顶楼 | |
发表时间:2009-03-31
Element&lina 写道 Devin.Chenzx 写道 啥也不说
你们给银行做系统 钱是用float 和 double来计算的? 不差钱 .9999999999999999999999999999999--->1 客户数学都很好的…… |
|
返回顶楼 | |
发表时间:2009-03-31
akiraray 写道 Element&lina 写道 Devin.Chenzx 写道 啥也不说
你们给银行做系统 钱是用float 和 double来计算的? 不差钱 .9999999999999999999999999999999--->1 客户数学都很好的…… 尾数都是不给用户的... 不过用float会莫名的把2位小数变成一个N位的小数.... 用bigdecimal来记数字的就没什么问题了. |
|
返回顶楼 | |