论坛首页 Java企业应用论坛

信用卡还款问题

浏览 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));
	}
   发表时间:2009-03-30  
啥也不说

你们给银行做系统

钱是用float 和 double来计算的?
0 请登录后投票
   发表时间:2009-03-30  
Devin.Chenzx 写道
啥也不说

你们给银行做系统

钱是用float 和 double来计算的?



不差钱
0 请登录后投票
   发表时间:2009-03-31  
Element&lina 写道
Devin.Chenzx 写道
啥也不说

你们给银行做系统

钱是用float 和 double来计算的?



不差钱

.9999999999999999999999999999999--->1 客户数学都很好的……
0 请登录后投票
   发表时间:2009-03-31  
akiraray 写道
Element&lina 写道
Devin.Chenzx 写道
啥也不说

你们给银行做系统

钱是用float 和 double来计算的?



不差钱

.9999999999999999999999999999999--->1 客户数学都很好的……

尾数都是不给用户的...
不过用float会莫名的把2位小数变成一个N位的小数....
用bigdecimal来记数字的就没什么问题了.
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics