我试图通过JOption Message窗口计算这个if / else语句。提示1很好,并返回名称,但我没有通过提示2进行任何计算。我猜我需要用我的双号1做一些事情,但我不确定。
提前致谢!
public static void main(String[] args)
{
Scanner imput = new Scanner(System.in); //ALLOW USER TO INPUT NAME AND MONTHLY INCOME
long monthlyIncome = 0;
double newSocSecTax = 0.0;
double oldSocSecTax = 0.0;
String name = JOptionPane.showInputDialog( "Please enter your name: "); //PROMPT 1
String income = JOptionPane.showInputDialog("\nPlease enter your gross monthly income: "); //PROMPT 2
double number1 = Double.parseDouble( income );
if(monthlyIncome >= 110100.00)
{
newSocSecTax = 110100.00 * .062;
oldSocSecTax = 106800.00 * .042;
}
else
{
if(monthlyIncome >= 106800.00)
{
newSocSecTax = monthlyIncome * .062;
oldSocSecTax = 106800.00 * .042;
}
else
{
newSocSecTax = monthlyIncome * .062;
oldSocSecTax = monthlyIncome * .042;
}
}
String message = String.format( "%s, your monthly social security tax will be $%.2f." +
"\nThis is an increase of $%.2f.", name, newSocSecTax, oldSocSecTax );
JOptionPane.showMessageDialog( null, message );
System.exit(0);
}
}
答案 0 :(得分:1)
monthlyIncome
中没有值,您将输入解析为number1
。这会在monthlyIncome
处留下0
,使税收变量也为0
。
请注意,描述实际发生的事情与您预期发生的事情是有帮助的,否则我们不得不通过“未进行任何计算”来猜测您的意思。当然,你正在计算 - 问题是它们不是你想要的。
答案 1 :(得分:1)
您还没有将monthlyIncome设置为基于通过“提示”返回的number1的任何内容。
答案 2 :(得分:0)
我假设您要将number1
分配给monthlyIncome
,不是吗?到目前为止,您还没有使用number1
,而monthlyIncome
在用户输入数字后仍然会显示值0
。
请注意,monthlyIncome
是long
变量,因此分配number1
将需要强制转换并可能导致精确损失(如果用户输入分数),尽管这些可能是在你的情况下可以接受。
答案 3 :(得分:0)
将您的代码更改为
double monthlyIncome = Double.parseDouble( income );
因为在if-else
声明中您使用的是monthlyIncome
,但在原始代码中,您将值指定为number1