Java - Else If 循环不适用于实例变量

标签 java

我正在尝试计算用户应根据工资支付多少税款。例如,在第一个 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 pay 由于某种原因总是停留在 0 并且没有在每次迭代中正确更新。

最佳答案

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

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

关于Java - Else If 循环不适用于实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32256690/

相关文章:

java - 如何解析字符串以正确获取小数点和带点的单词?

java - 从对象列表中获取属性的聚合列表(Java 8)

java - 突出显示在 Eclipse 中何时使用相等运算符 (==) 进行字符串比较

java/processing 返回 ArrayList 抛出 : This method must return a result of Type ArrayList

java - 空指针检查顺序

java - 在 Quickfixj 中断开连接

java - 有没有办法设置一个基本请求参数以包含在使用 Square 的 Retrofit 库发出的每个请求中?

java - Netty 无法在 channel 中发送第二个请求

java - spring ldap配置属性要求

基于 Java 组件与基于请求的框架