2012-02-01 148 views
1

我已經寫了下面的代碼,以兩個浮點數之間的差異制定出到小數點後兩位:爪哇 - 計算錯誤

double p = (Math.round((Double.parseDouble(a) - Double.parseDouble(a))*100))/100; 

ab是一個字符串數組,與小數位的數字值,但顯然是以String的格式。我試着字符串的數字轉換成雙打和開展與他們的計算,但它似乎並沒有被工作,並拋出這個錯誤:

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "N/A" 
    at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source) 
    at java.lang.Double.parseDouble(Unknown Source) 

附加信息:這從網絡使用數據,似乎以前工作,但現在它似乎有一個錯誤的種類。我該如何解決這個問題,這有什麼問題?

+0

a是什麼值? – 2012-02-01 14:27:31

+3

「a」或「b」等於「N/A」。這是個問題。 – 2012-02-01 14:27:34

+0

檢查這些字符串是否使用點作爲分隔符而不是逗號 – ka3ak 2012-02-01 14:28:47

回答

5

問題是您的String變量ab未正確格式化 - 「N/A」不是合適的double

請張貼你如何讓他們。

+0

這幫助我確定了問題,現在我正在處理它。謝謝你指出,不知道我是怎麼錯過的! – mino 2012-02-01 14:30:57

0

你的錯誤的根本是java.lang.NumberFormatException: For input string: "N/A"

這意味着ab具有N/A的值。

0

代碼中沒有b。如果你正在嘗試做這樣的事情:


String[] a = {"123","23"} ; 
double p = (Math.round((Double.parseDouble(a[0]) - Double.parseDouble(a[1]))*100))/100; 
System.out.println(p); 

,那麼你可能有一個錯字錯。因爲它打印出來對我很好。