Java 为什么它总是显示错误数量的镍币?
我正在制作一个Java方法,它接受1-99之间的int。它可以正确显示25美分硬币和10美分硬币,但不能正确显示5美分硬币。这个班是PS1Java 为什么它总是显示错误数量的镍币?,java,Java,我正在制作一个Java方法,它接受1-99之间的int。它可以正确显示25美分硬币和10美分硬币,但不能正确显示5美分硬币。这个班是PS1 static void problem10(int change) { if (change > 99) { return; } //declaring variables int numQuarters; int numDimes; int numNickels; int
static void problem10(int change)
{
if (change > 99)
{
return;
}
//declaring variables
int numQuarters;
int numDimes;
int numNickels;
int numPennies;
//figuring out change for each denomination
numQuarters = change / 25;
if (numQuarters <= 0.1){
numQuarters = 0;
}
numDimes = (change - numQuarters*25) /10 ;
if (numDimes <= 0.1){
numDimes = 0;
}
numNickels = (change - numQuarters * 25) - (numDimes * 10) / 5; //fix nickels
if (numNickels < 1){
numNickels = 0;
}
numPennies = (change - numQuarters * 25) - (numDimes * 10) - (numNickels * 5) / 1;
if (numPennies < 1){
numPennies = 0;
}
//printing the correct change for each denomination
System.out.println("Your change is " + numQuarters + " quarters " + numDimes + " dimes " + numNickels + " nickels " + numPennies + " pennies ");
}
需要额外的括号,如
numNickels = ((change - numQuarters * 25) - (numDimes * 10)) / 5; //fix nickels
if (numNickels < 1){
numNickels = 0;
}
numPennies = ((change - numQuarters * 25) - (numDimes * 10) - (numNickels * 5)) / 1;
if (numPennies < 1){
numPennies = 0;
}
numNickels=((change-numQuarters*25)-(numDimes*10))/5//固定镍币
如果(努尼克尔<1){
numNickels=0;
}
numPennies=((变更-numQuarters*25)-(numDimes*10)-(numNickels*5))/1;
if(numPennies<1){
numPennies=0;
}
您需要更多或更少的括号<代码>(numDimes*10)/5在减法之前计算。您也在比较int和float,就像在numQuarters中将int与0.1进行比较一样,您试图修复一个双精度值。对int执行此操作没有用处。整数值将始终是整数值。
numNickels = ((change - numQuarters * 25) - (numDimes * 10)) / 5; //fix nickels
if (numNickels < 1){
numNickels = 0;
}
numPennies = ((change - numQuarters * 25) - (numDimes * 10) - (numNickels * 5)) / 1;
if (numPennies < 1){
numPennies = 0;
}