快速生成快捷金额

来源:互联网 发布:200兆网络限速多少合适 编辑:程序博客网 时间:2024/05/01 16:29
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;}

0 0