Java收银机: Getting change from in different subunits

标签 java

在自学 Java 时,我遇到了一个示例问题,要求我创建一个收银机程序,该程序将计算返回给客户的美元、镍币、25 美分、10 毛币和便士等形式的总找零。

我计算出了用户输入,但获取正确的子单元是棘手的部分。例如:如果成本为 4 美元且投标金额为 5 美元,则很容易编写返回 1 美元的代码行。但我遇到的麻烦是将需要多少一毛钱和便士放在正确的字段中。 ex2:总成本 4.62 美元,投标:5 美元,变更:0.38 美元

            System.out.print("Enter the sale amount: $   ");
    double sale = user.nextDouble();
    System.out.print("Enter the amount tendered by customer: $   ");
    double tendered = user.nextDouble();
    double totalChange = (tendered - sale);
    System.out.printf("TOTAL CHANGE: $  %.2f\n", totalChange);
    dollars = totalChange/1;
    quarters = totalChange/25;
    dimes = totalChange/10;
    nickels = totalChange/5;
    pennies = totalChange/1;




    System.out.printf("DOLLARS: %.2f\n", dollars);
    System.out.printf("QUARTERS: %.2f\n", quarters);
    System.out.printf("DIMES: %.2f\n", dimes);
    System.out.printf("NICKELS: %.2f\n", nickels);
    System.out.printf("PENNIES: %.2f\n", pennies);

我不需要答案(因为我想自学和自学),但只需要一些关于如何去做的建议。

编辑:我这个算法做错了什么:

            dollars = totalChange/1;
    dollars = (int)dollars;
    dl = totalChange % 1;

    quarters = dl/0.25;
    q = quarters % 0.25;
    quarters = (int)quarters;

    dimes = q / .10;
    d = dimes % .10;



    nickels = d / .5;
    n = nickels % .5;

    pennies = n / .1;
    n = pennies/ .1;

最佳答案

您走在正确的道路上。确定最大的找零金额后,将其减去。然后确定你能从剩下的钱中获得最多的25美分。对每个重复。这与您作为人类自己的做法相同。

关于Java收银机: Getting change from in different subunits,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21419150/

相关文章:

java - 如何将ArrayList限制为15个?

Java Swing 线程安全和 EDT

java - 枚举内部类

java - 解析编码数据时出现问题?

java - 丰富:fileUpload stackoverflow error at AjaxOutputTracker. getAjaxOutputs

java - 基于嵌套路径对属性进行排序的 Hibernate 查询

java - NSIS - 在运行进程之前设置进程的工作目录

java - 在同一个Java数组中调用扩展类函数

java - Java 'timeline' 库存在什么?

java - android 在安装时创建文本文件