快速生成快捷金额

private List<Double> fastMoney(double inputMoney) {
		List<Double> moneys = new ArrayList<Double>();
		moneys.add(inputMoney);
		Long zs = (long) Math.floor(inputMoney);
		double xiaoshu = inputMoney - zs;
		BigDecimal bg = new BigDecimal(xiaoshu);
		double tmpXiaoshu = bg.setScale(2, BigDecimal.ROUND_HALF_UP)
				.doubleValue();
		// 小数部分
		if (tmpXiaoshu > 0 && tmpXiaoshu < 0.5) {
			moneys.add(zs + 0.5);
			moneys.add(zs + 1.0);

		} else if (tmpXiaoshu >= 0.5) {
			if (tmpXiaoshu < 0.6 & tmpXiaoshu > 0.5) {
				moneys.add(zs + 0.6);
				moneys.add(zs + 0.7);
			}
			if (tmpXiaoshu < 0.7 & tmpXiaoshu > 0.6) {
				moneys.add(zs + 0.7);
			}
			moneys.add(zs + 1.0);

		}
		if (inputMoney < 1) {
			moneys.add(1.0);
			moneys.add(2.0);
			moneys.add(5.0);
			moneys.add(10.0);
			moneys.add(20.0);
			moneys.add(50.0);
			moneys.add(100.0);
		}
		// 个位
		int gewei = (int) (inputMoney % 10);
		System.out.println("个位:" + gewei);
		if (gewei >= 1 && gewei < 2) {
			moneys.add(((int) (inputMoney / 10)) * 10 + 2.0);
			moneys.add(((int) (inputMoney / 10)) * 10 + 5.0);
			moneys.add(((int) (inputMoney / 10)) * 10 + 10.0);
		} else if (gewei >= 2 && gewei < 5) {
			moneys.add(((int) (inputMoney / 10)) * 10 + 5.0);
			moneys.add(((int) (inputMoney / 10)) * 10 + 10.0);
		} else if (gewei >= 5 && gewei < 10) {
			if (gewei < 6 && gewei > 5) {
				moneys.add(((int) (inputMoney / 10)) * 10 + 6.0);
				moneys.add(((int) (inputMoney / 10)) * 10 + 7.0);
			}
			if (gewei < 7 && gewei > 6) {
				moneys.add(((int) (inputMoney / 10)) * 10 + 7.0);
			}
			moneys.add(((int) (inputMoney / 10)) * 10 + 10.0);
		}
		if (inputMoney < 10) {
			moneys.add(10.0);
			moneys.add(20.0);
			moneys.add(50.0);
			moneys.add(100.0);
		}
		// 十位
		int shiwei = (int) (inputMoney % 100);
		System.out.println("十位:" + shiwei);
		if (shiwei >= 10 && shiwei < 20) {
			moneys.add(((int) (inputMoney / 100)) * 100 + 20.0);
			moneys.add(((int) (inputMoney / 100)) * 100 + 50.0);
			moneys.add(((int) (inputMoney / 100)) * 100 + 100.0);
		} else if (shiwei >= 20 && shiwei < 50) {
			moneys.add(((int) (inputMoney / 100)) * 100 + 50.0);
			moneys.add(((int) (inputMoney / 100)) * 100 + 100.0);
		} else if (shiwei >= 50 && shiwei < 100) {
			if (shiwei < 70 & shiwei > 50) {
				moneys.add(((int) (inputMoney / 100)) * 100 + 70.0);
			}
			moneys.add(((int) (inputMoney / 100)) * 100 + 100.0);
		}

		HashSet<Double> hs = new HashSet<Double>(moneys); // 此时已经去掉重复的数据保存在hashset中
		List<Double> sortMoneys = new ArrayList<Double>();
		for (final Double value : hs) {
			sortMoneys.add(value);
		}
		Collections.sort(sortMoneys);
		return sortMoneys;
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值