我试图根据工资计算用户应缴纳的税款。例如,在第一个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) * userGrossPay
是0
,因为20/100
是0
的归因于int
。也将其更改为0.2 * userGrossPay
或20.0/100 * userGrossPay
。类似地,将除以两个整数的所有其他位置更改。