为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕斯王 2023-11-01 22:40:59
我制作了一个简单的税务计算器,如果您单身或已婚,它会以不同的方式计算您的税款。我正在使用 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
查看完整描述

1 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

你的代码看起来没问题。试试这个,看看是否有效。没有任何变化;我刚刚初始化了一些变量:


public void single() {

    double singleLimit = 32000.0; // making it double because your income is in double

    double tax1 = 0.0, tax2 = 0.0, totalTax = 0.0; // declaring all tax variables as local variables


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


    if (income <= singleLimit)  {

        tax1 = rate1 * income;

    } else {

        tax1 = rate1 * singleLimit;

        tax2 = rate2 * (income - singleLimit);

    }

    double totalTax = tax1 + tax2;


    JOptionPane.showMessageDialog(null, "Taxable income for a single person wil be $" + totalTax );

}


查看完整回答
反对 回复 2023-11-01
  • 1 回答
  • 0 关注
  • 59 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信