我有一个现金注册程序,可以输入购买和付款并输出到期的变更。我需要它不仅仅给出一定金额但是用户应该获得的特定金币/美元。继承人我有两种方法
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美元,则会输出一美元镍和一分钱。
任何建议都会有所帮助。谢谢!如果您需要查看更多代码,请告诉我
答案 0 :(得分:0)
我会给你一个如何做的建议,而不是一个解决方案。
列出可能的硬币/音符值。
然后从最大到最低,计算它与剩余部分匹配的次数,并从该值中减去这笔金额。记下硬币/钞票的数量。
这样,您将获得所需的数字。
count = Math.floor(remainder/coinValue)
可能会对您有所帮助。