我在 if 和 else 语句中给出的比率没有按应有的方式相加

我制作了一个简单的税务计算器,如果您单身或已婚,它会以不同的方式计算您的税款。我正在使用 JOptionPane,因为这是一项要求,而且我还需要不要将所有代码放在主方法中,我必须使用主方法之外的方法,但在同一个构造函数类中,我为单速率创建了两个构造函数以及一种计算已婚率的方法。


我必须能够允许用户输入他们是单身还是已婚,并且能够输入他们的收入。尽管对于每个单身或已婚限制,我都对双变量进行了硬编码。。


当我运行该程序时,它没有错误,但它总是返回与我输入的任何值的 10% 相同的结果,无论它是否高于单身或已婚限制,我不确定为什么会发生这种情况,任何帮助都值得赞赏。


我尝试过在每个方法中设置变量,还尝试将所有变量放在方法之外(我被告知我不能这样做,但正在测试它是否会产生影响,但事实并非如此)


这是我在第二种方法上重复的一种方法,所以没有太多意义同时发布这两种方法


    public void single() {

        income = Double.parseDouble(JOptionPane.showInputDialog("Enter your income ($)"));

        if (income <= singleLimit)  { // singleLimit = 32000 (mentioned in the comments)

            tax1 = rate1 * income; // rate1 = 0.10

        }   else    {

            tax1 = rate1 * singleLimit; 

            tax2 = rate2 * (income - singleLimit); // rate2 = 0.25

        }

        double totalTax = tax1 + tax2;

        JOptionPane.showMessageDialog(null,

                "Taxable income for a single person wil be $" + totalTax );


    }

我预计收入为 20,000 的单身人士的产出 = 2,000

我预计收入为 40,000 的单身人士的产出 = 6,000


慕斯王
浏览 61回答 1
1回答

哈士奇WWW

你的代码看起来没问题。试试这个,看看是否有效。没有任何变化;我刚刚初始化了一些变量:public void single() {&nbsp; &nbsp; double singleLimit = 32000.0; // making it double because your income is in double&nbsp; &nbsp; double tax1 = 0.0, tax2 = 0.0, totalTax = 0.0; // declaring all tax variables as local variables&nbsp; &nbsp; income = Double.parseDouble(JOptionPane.showInputDialog("Enter your income ($)"));&nbsp; &nbsp; if (income <= singleLimit)&nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; tax1 = rate1 * income;&nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; tax1 = rate1 * singleLimit;&nbsp; &nbsp; &nbsp; &nbsp; tax2 = rate2 * (income - singleLimit);&nbsp; &nbsp; }&nbsp; &nbsp; double totalTax = tax1 + tax2;&nbsp; &nbsp; JOptionPane.showMessageDialog(null, "Taxable income for a single person wil be $" + totalTax );}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java