I am writing a small program to give me the max amount of each coin category (quarters, dimes, etc) when I enter an amount. The modulus operator is not returning a correct value. For example, when I enter the amount "1.64", it should return: Quarters: 6, Dimes: 1, Nickels: 0, Pennies: 4. But my problem is at pennies. It keeps returning 3 pennies only. Any input would be appreciated!
import java.util.Scanner;
public class Main{
    public static void main(String args[]) {
        Scanner in = new Scanner(System.in);
        System.out.println("Enter amount: ");
        double amount = in.nextDouble();
        int quarters = (int)(amount / 0.25);
        System.out.println("Quarters: " + quarters);
        amount = (amount % 0.25);
        int dimes = (int)(amount / 0.1);
        System.out.println("Dimes: " + dimes);
        amount = (amount % 0.1);
        int nickels = (int)(amount / 0.05);
        System.out.println("Nickels: " + nickels);
        amount = (amount % 0.05);
        int pennies = (int)(amount / 0.01);
        System.out.println("Pennies: " + pennies);
    }
}
Enter amount: 1.64 Quarters: 6 Dimes: 1 Nickels: 0 Pennies: 3
 
     
     
    