很容易,有两个集合(列表)和tagli;滚动列表和当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;
}
答案 0 :(得分:-1)
public static double arrotonda( double numero, int nCifreDecimali ){
return Math.round( numero * Math.pow( 10, nCifreDecimali ) )/Math.pow( 10, nCifreDecimali );
}