繁体   English   中英

如何获取我的代码以打印出更改? 我使用了模数,但只打印了剩余的数

[英]How do i get my code to print out the change? I used modulus yet it's only printing out the remainder

public class Change {

    public static void main(String[] args) {
        System.out.print("Enter the amount due: ");//Variable = amount
        Scanner keyboard = new Scanner(System.in);
        int amount = keyboard.nextInt();

        System.out.print("Enter the amount recieved from Customer: ");
        Scanner keyboard2 = new Scanner(System.in);
        int customer = keyboard2.nextInt();//variable = customer

        double change = customer - amount;
        System.out.println("You need to give to customer");

        double remainingAmount = (double) (change * 100);

        double numDollars = remainingAmount / 100;
        remainingAmount = remainingAmount % 100;

        double numQuarters = remainingAmount / 25;
        remainingAmount = remainingAmount % 25;

        double numDimes = remainingAmount / 10;
        remainingAmount = remainingAmount % 10;

        double numNickels = remainingAmount / 5;
        remainingAmount = remainingAmount % 5;

        double numPennies = remainingAmount;

        System.out.println("Dollars: " + numDollars);
        System.out.println("Quarters: " + numQuarters);
        System.out.println("Dimes: " + numDimes);
        System.out.println("Nickels: " + numNickels);
        System.out.println("Pennies: " + numPennies);

    }

}

当我尝试运行代码时,例如,当我在247输入“需要的金额”并输入客户编号315时,我只会收到余数。在“ Dollars:”的第一条语句中,我得到68作为余数

您总是只看到美元金额而没有硬币的原因是,您提示用户输入美元金额。 然后,您的代码将此美元金额乘以100,以确定美分数。 由于输入始终是美元的倍数,因此除以100后就不会有任何余数,因此就不会有任何硬币。

如果要查看一些硬币,则允许用户输入带小数美分的美元金额(作为double型输入),然后您将在其中看到美分(不是双关语):

System.out.print("Enter the amount due: ");//Variable = amount
Scanner keyboard = new Scanner(System.in);
double amount = keyboard.nextDouble();       // e.g. 311.00

System.out.print("Enter the amount recieved from Customer: ");
Scanner keyboard2 = new Scanner(System.in);
double customer = keyboard2.nextDouble();   // e.g. 320.49

double change = customer - amount;          // 9.4900000

int remainingAmount = (int)(change * 100);  // 949

int numDollars = remainingAmount / 100;     // 9 (49 gets truncated)
remainingAmount = remainingAmount % 100;    // 49 remainder

int numQuarters = remainingAmount / 25;     // 1 (24 gets truncated)
remainingAmount = remainingAmount % 25;     // 24 remainder

int numDimes = remainingAmount / 10;        // 2 (4 gets truncated)
remainingAmount = remainingAmount % 10;     // 4 remainder

int numNickels = remainingAmount / 5;       // 0
remainingAmount = remainingAmount % 5;      // 4 remainder

int numPennies = remainingAmount;           // 4 pennies left

System.out.println("Dollars: " + numDollars);
System.out.println("Quarters: " + numQuarters);
System.out.println("Dimes: " + numDimes);
System.out.println("Nickels: " + numNickels);
System.out.println("Pennies: " + numPennies);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM