-1

很简单,有两个集合集(list)和tagli;滚动列表,当 resto> 列表中的项目时,拾取该项目并减去该项目,直到 resto 等于 0。

public static ArrayList<Double> getTagli(Double resto) {
    Set list = Cassa.getSoldi().keySet();   // 10, 5, 2, 1, 0.5, 0.2, 0.1
    Iterator iter = list.iterator();
    Double divisore = (Double) iter.next();
    while (iter.hasNext() && resto > 0) {
        resto = Cassa.divisioniSuccessive(resto, divisore);
        if (resto<divisore)
            divisore = (Double) iter.next();
    }
    return tagli;
}

private static Double divisioniSuccessive(Double dividendo, Double divisore) {
    if (dividendo >= divisore) {
        tagli.add(divisore);
        dividendo = (Double) dividendo - (Double) divisore;
    }
    return dividendo;
}
4

1 回答 1

-1
public static double arrotonda( double numero, int nCifreDecimali ){
    return Math.round( numero * Math.pow( 10, nCifreDecimali ) )/Math.pow( 10, nCifreDecimali );
}
于 2017-03-30T20:12:02.340 回答