0

我有一个收银程序,可以输入购买和付款并输出应付的零钱。我需要它不只是给出一个金额,而是给出特定的硬币/美元用户应该得到什么。这是我有两种方法

  public void recordPurchase()
  {
    System.out.print("Enter total purchase price or negative number to end: "); 
    double input = keyboard.nextDouble();
    while(input > 0)
    {
      purchase = purchase + input;
      System.out.print("Enter total purchase price or negative number to end: "); 
      input = keyboard.nextDouble();
    }
  }

  public double giveChange(Money moneyTypes)
  {
    double change = payment - purchase;
    purchase = 0;
    payment = 0;
    //computes change rounding to two decimal places
    change = (double)(Math.round(change*100))/100;
    return change;
  }

我需要输出人应该拿回的硬币/美元。我将货币类型保存在一个名为 moneyTypes 的数组中。例如,如果应付的零钱是 1.06 美元,它会输出你收到一美元的五分钱和一分钱。

任何建议都会有所帮助。谢谢!如果您需要查看更多代码,请告诉我

4

1 回答 1

0

我会给你一个建议,而不是解决方案。

列出可能的硬币/纸币值。

然后从最大到最小,计算它适合余数的次数,然后从价值中减去这笔钱。记下硬币/纸币的数量。

这样,您将获得所需的数字。

count = Math.floor(remainder/coinValue)可能会帮助你。

于 2013-11-11T18:29:27.680 回答