2017-02-22 80 views
-2

我正在使用JOptionPane類。錯誤:二元運算符'*'的第一個類型爲錯誤操作數類型:java.lang.String第二個類型:雙重

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,但我不知道這意味着什麼。我怎樣才能解決這個問題?

+1

這意味着你不能乘以一個字符串。 – SLaks

+0

錯誤很明顯。字符串不能是操作操作的操作數之一。你將一個字符串和一個double相乘,這是不可能的。你需要[將其轉換爲雙精度](http://stackoverflow.com/questions/5769669/convert-string-to-double-in-java)。 – BackSlash

+0

將字符串轉換爲雙精度? – JNV

回答

-1

我無法評論,因爲我是一個相當新的用戶,但最初的問題得到回答(你必須解析爲Double,因爲收入通常佔值,並且要執行一些算術操作上的價值),所以我要解決編輯。你從來沒有每月宣佈一個變量名,所以沒有什麼可以調用的。嘗試初始化稱爲可變每月不過你想要的

double monthly=(income/12); 

或不過你想要的?(我不知道你想怎麼定義每月,是毛或稅後,因此它可能是,你需要什麼聲明一些每月所謂的變數)

編輯:看起來像你解決了它。那麼,現在這看起來不合適。

-1

的錯誤應該被解釋爲:

你不能得到雙倍如通過數字的字符串相乘的結果...

需要PARSE字符串第一個,那麼你可以做數學與價值......

解決

請使用t他靜態方法Double.parseDouble()

double dIncome = Double.parseDouble(income); 
double tax = dIncome -dIncome *0.3; 
-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 
-1

你需要以某種方式首先解析字符串到雙。你不能簡單地將一個數字乘以一個字符串,並期望它能夠工作。 Double.parseDouble(String s)是個不錯的選擇。

嘗試:

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

代替。

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

相關問題