giveChange方法计算改变和返回java的硬币数量?

时间:2013-11-11 18:27:42

标签: java arraylist output

我有一个现金注册程序,可以输入购买和付款并输出到期的变更。我需要它不仅仅给出一定金额但是用户应该获得的特定金币/美元。继承人我有两种方法

  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美元,则会输出一美元镍和一分钱。

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

1 个答案:

答案 0 :(得分:0)

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

列出可能的硬币/音符值。

然后从最大到最低,计算它与剩余部分匹配的次数,并从该值中减去这笔金额。记下硬币/钞票的数量。

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

count = Math.floor(remainder/coinValue)可能会对您有所帮助。