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