我有一项任务,我必须创建一种方法,我必须从客户那里收钱,然后根据价格给他们换回。目前令人沮丧的情况是,即使在我要求数十个之后,它仍然只显示20个数。例如,如果一件物品花费5美元而有人给我155美元,那么变化将是150.机器应该返回该变化包含七个20秒和一个10.但每当我要求10s的数量时,我会回来7.有人可以请帮我解决这个问题。你能告诉我一个方法来做5s 1s 0.75cent硬币0.35cent硬币和0.1%硬币。 我目前的代码是:
public class change {
static int twentys;
static int numtwen;
static int tens;
static int numten;
static int fives;
static int numfiv;
static int ones;
static int numone;
static int scc;
static int numscc;
static int tcc;
static int numtcc;
static int occ;
static int numocc;
public static double result(double salesTotal, double customerPayment) {
System.out.println("How much does it cost?");
double price = IO.readDouble();
salesTotal = price;
System.out.println("How much do you have?");
double money = IO.readDouble();
customerPayment = money;
double change = money - price;
if (change > 0.34 && change / 20 >= 1) {
numtwen = (int) change / 20;
change = numtwen % change;
numten = (int) change / 10;
change = numten % change;
numfiv = (int) change / 5;
change = numfiv % change;
}
return numten;
}
public static void main(String[] args) {
double a = result(2, 5);
System.out.println(numtwen);
}
}
答案 0 :(得分:0)
change = numtwen % change;
错了。
change = change % 20;
就是你想要的。
同样适用于其他商。
小心浮点不精确。编程中的浮点值不能很好地表示货币。