错误:二进制运算符'*';第一种类型:java.lang.String第二种类型:double
我正在使用错误:二进制运算符'*';第一种类型:java.lang.String第二种类型:double,java,Java,我正在使用JOptionPane类 JOptionPane.showInputDialog("Annual income?"); String income; income = JOptionPane.showInputDialog("Annual income?"); double tax = income-income*0.3; double salary = (tax
JOptionPane
类
JOptionPane.showInputDialog("Annual income?");
String income;
income = JOptionPane.showInputDialog("Annual income?");
double tax = income-income*0.3;
double salary = (tax/12);
JOptionPane.showMessageDialog(null ,"Monthly in-hand salary is $"+monthly);
System.exit(0);
上面说“双重征税”一行有错误,但我不知道怎么了。它还提到了一个
java.lang.String错误
,但我也不知道这是什么意思。如何解决此问题?错误应解释为:
“字符串与数字相乘不能得到双精度…”“
您需要先解析字符串,然后才能使用该值进行计算
解决方案
使用静态方法Double.parseDouble()
此处出现错误
double tax=收入*0.3代码>。这是因为您试图将一个字符串与一个不可能的数字相乘
要解决此问题,请尝试以下方法:
double income = Double.parseDouble(JOptionPane.showInputDialog("Annual income?")); // you can expand on this by validating prior to assigning
首先需要将字符串解析为double。你不能简单地把一个数字和一个字符串相乘,然后期望它起作用Double.parseDouble(字符串s)
是一个不错的选择
尝试:
相反
这意味着不能将字符串相乘。错误很明显。字符串不能是算术运算的操作数之一。将字符串与双精度相乘,这是不可能的。你需要。将字符串转换为双精度?@madcity是的。字符串不是数字,不能用作乘法的操作数。你需要先把它转换成一个数字。请参阅我之前评论中的链接。一旦回答了原始问题,请不要删除它。这可能会在将来帮助其他用户。已请求回滚到第4版。
double income = Double.parseDouble(JOptionPane.showInputDialog("Annual income?")); // you can expand on this by validating prior to assigning
double income =
Double.parseDouble(
JOptionPane.showInputDialog("Annual income?"));