Java 为什么它总是显示错误数量的镍币?

Java 为什么它总是显示错误数量的镍币?,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

我正在制作一个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 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;
    }