Ich habe daran gearbeitet, ein Programm zu erstellen, um Änderungen zu berechnen, und das Programm wird nie beendet und beendet nach Abschluss. Ich weiß nicht, was mit meinem Code nicht stimmt. Wenn jemand helfen könnte, wäre das großartig.Berechnen von Änderungen in einem Programm - Gleitkommafehler
private static void calculateChange(double price, double given) {
int ones = 0, quarters = 0, dimes = 0, nickels = 0, pennies = 0;
double change = given - price;
while (change != 0) {
if (change >= 1) {
change = change - 1;
ones++;
}
if (change >= .25) {
change = change - 0.25;
quarters++;
}
if (change >= .10) {
change = change - .10;
dimes++;
}
if (change >= .05) {
change = change - .05;
nickels++;
}
if (change >= .01) {
change = change - .01;
pennies++;
}
}
System.out.println();
System.out.println("Correct Change");
System.out.println("Ones " + ones);
System.out.println("Quarters " + quarters);
System.out.println("Dimes " + dimes);
System.out.println("Nickels " + nickels);
System.out.println("Pennies " + pennies);
}
Sie Gleitkommawerte nicht für ein Programm wie folgt verwenden. Verwenden Sie stattdessen Ganzzahlen (Pennies). – PaulMcKenzie
@PaulMcKenzie Ich habe die Münzen als Ganzzahlen gemacht, aber es funktioniert nicht. – Asker123
Haben Sie es debuggen? Änderung wird wahrscheinlich weniger als 0, die Sie zulassen. – Carcigenicate