This code is supposed to take the amount due for an item and the amount paid. Then find the change in coins and dollars. When ever I put due: 41.35 and received: 50.00, I get 8 dollars, 2 quarters, 1, dime, 0 nickels, 4 pennies. In reality, it should be 8 dollars, 2 quarters, 1, dime, 1 nickel, 0 pennies.
import java.util.Scanner;
public class Cashier {
private double amountDue;
private double amountReceived;
private int dollars = 0;
private int quarters = 0;
private int dimes = 0;
private int nickels = 0;
private int pennies = 0;
private double toConvert;
public Cashier(double due, double received){
amountDue = due;
amountReceived = received;
toConvert = received - due;
}
public int getDollars(){
dollars = (int)toConvert;
toConvert -= dollars;
return dollars;
}
public int getQuarters(){
quarters = (int)(toConvert/.25);
toConvert -= (.25 * quarters);
return quarters;
}
public int getDimes(){
dimes = (int)(toConvert/0.1);
toConvert -= (.1 * dimes);
return dimes;
}
public int getNickels(){
nickels = (int)(toConvert/0.05);
toConvert -= (0.05 * nickels);
return nickels;
}
public int getPennies(){
pennies = (int)(toConvert/0.01);
toConvert -= (0.01 * pennies);
return pennies;
}
public static void main(String[] args){
Scanner ask = new Scanner(System.in);
System.out.print("Enter Amount Due: ");
double amtDue = ask.nextDouble();
System.out.print("Enter Amount Received: ");
double amtReceived = ask.nextDouble();
Cashier one = new Cashier(amtDue, amtReceived);
System.out.println("Dollars = " + one.getDollars());
System.out.println("Quarters = " + one.getQuarters());
System.out.println("Dimes = " + one.getDimes());
System.out.println("Nickels = " + one.getNickels());
System.out.println("Pennies = " + one.getPennies());
}
}