我制作了一个简单的税金计算器,无论您是单身还是已婚,您的税金都会有所不同。我正在使用JOptionPane,因为这是一项要求,而且我也不必将我的所有代码都放在main方法内,我必须在main方法外使用方法,但要在同一个构造函数类中使用该方法,对于单个速率我做了两个和结婚率的一种方法。
我必须能够允许用户输入他们是单身还是已婚,并且必须能够输入他们的收入。我已经为每个单一或已婚限制对双变量进行了硬编码。
当我运行该程序时,它没有错误,但始终返回与我输入的任何值的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的单人的产出
答案 0 :(得分:1)
您的代码似乎还不错。试试这个,看看是否可行。没有任何改变;我刚刚初始化了一些变量:
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 );
}