java - 我在 if 和 else 语句中给出的费率没有按应有的方式加起来
问题描述
我制作了一个简单的税务计算器,如果您单身或已婚,它将以不同的方式计算您的税款。我正在使用 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
解决方案
您的代码似乎没问题。试试这个,看看它是否有效。没有这样的变化;我刚刚初始化了一些变量:
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 );
}
推荐阅读
- node.js - 带有猫鼬的nodejs - 使用多个对象列表更新对象数组
- python - 如何从现有模型中图层的入站节点中删除 training=True?
- python - 如何使用相对导入启动 vscode 调试器?(Python)
- java - 按值分组地图列表并通过排序合并为分组列表
- java - @Value 属性在 spring 组件中返回 null
- function - 将打印文本的函数作为参数传递,在 Haskell 中的新状态后执行它
- symfony5 - KnpLabs/KnpSnappyBundle:HostNotFoundError (Symfony 5)
- google-apps-script - 如何访问我的谷歌应用脚本网络应用?
- sql-server - GRANT permission on dynamic view and table in SQL
- android - 如何使用M1芯片创建Android虚拟设备MacBook air?你的 CPU 不支持 VT-x