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;
}
快速生成快捷金额
最新推荐文章于 2024-06-19 23:48:47 发布