错误:二元运算符'*'的第一个类型的错误操作数类型:java.lang.String第二个类型:double

时间:2017-02-22 19:59:11

标签: java

我正在使用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 error,但我不知道这意味着什么。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:-1)

错误应解释为:

由于STRING乘以数字而无法获得Double ...

首先需要 PARSE 字符串,然后你可以用该值进行数学运算......

解决方案

使用静态方法Double.parseDouble()

double dIncome =    Double.parseDouble(income);
double tax = dIncome -dIncome *0.3; 

答案 1 :(得分:-1)

此处出现错误double tax = income-income*0.3;。这是因为你试图将一个字符串与一个不可能的数字相乘。

解决问题试试这个:

double income = Double.parseDouble(JOptionPane.showInputDialog("Annual income?")); // you can expand on this by validating prior to assigning

答案 2 :(得分:-1)

首先需要以某种方式将String解析为double。你不能简单地将一个数字乘以一个字符串并期望它能够工作。 Double.parseDouble(String s)是个不错的选择。

尝试:

double income =
    Double.parseDouble(
        JOptionPane.showInputDialog("Annual income?"));

代替。

Javadoc for Double.parseDouble() (Java Platform SE 7)