我制作了一个简单的税务计算器,如果您单身或已婚,它会以不同的方式计算您的税款。我正在使用 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 );
}
添加回答
举报
0/150
提交
取消