我试图根据工资计算用户应缴纳的税款。例如,在第一个if循环中计算20%,这将保存在generaltax中:

    int generalTax = 0;
    int userGrossPay = 50000;
    if (userGrossPay <= 10600) {generalTax += 0;}
    else if (((userGrossPay >= 10600) && (userGrossPay <= 31785))) { generalTax =  ((20/100) * userGrossPay); }
    else if (((userGrossPay >= 31786) && (userGrossPay <= 150000))) { generalTax =  ((40/100) * userGrossPay); System.out.println(generalTax);}
    else if (userGrossPay > 150001) {generalTax = ((45/100) * userGrossPay); }
    else{System.out.println("error");};

    userGrossPay -= generalTax;
    System.out.println(userGrossPay);


但是,出于某种原因,generalTax薪资始终停留在0上,并且每次迭代均未正确更新。

最佳答案

您的问题是您总是添加0或将0分配给generalTax

例如,(20/100) * userGrossPay0,因为20/1000的归因于int。也将其更改为0.2 * userGrossPay20.0/100 * userGrossPay。类似地,将除以两个整数的所有其他位置更改。

07-24 19:01