giveChange 方法计算零钱和硬币数量以返回 java?



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

  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 美元,它将输出您获得一美元的镍和便士。

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

我会给你一个建议如何做到这一点,而不是一个解决方案。

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

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

这样,您将获得所需的号码。

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

最新更新