2012-02-09 37 views
1

我想總結一個recordstore四列的值。這四列中的值是decimal point的數字,例如30.00; recordstore行是一個csv-like數據與我使用用戶定義的函數來獲取特定列的值:所以我得到String爲四列,例如"30.00"。現在我想要sum這四個值;所以我必須convert把它們變成int!但是,當我嘗試使用Integer.parseInt然後java.lang.NumberFormatException被提出!那麼如何在這種情況下做出總和呢?爲什麼在J2ME中表示數字的字符串的Integer.parseInt會拋出java.lang.NumberFormatException?

+0

要麼我的散光正在變差,要麼你真的很喜歡反衝。 – 2012-02-09 15:47:07

+3

'30.00'不是'整數',因爲有一個'decimal'點。 – 2012-02-09 15:47:35

+1

從數學的角度來說,30.00是一個整數,我上次檢查。問題是完全合理的imo。 – aioobe 2012-02-09 15:48:28

回答

6

儘管30.00看起來像一個整數,Java認爲它看起來像一個浮點值(由於小數點)。

因此,您需要將它解析爲double,然後獲取整數部分。

int i = Double.parseDouble("30.00").intValue(); 

(J2ME不特定的方式。)

1

如果你的號碼包含小數點,則需要解析爲一個雙。

Double.parseDouble("30.00"); 

從那裏,你可以使用Math方法或只是截斷,讓您的整數。

0

正如另一種選擇,你也可以使用Integer.parseInt("30.00".split("\\.")[0])
這將消除依賴於小數點分隔符(如果你總是有串點,但你必須區域設置無法控制它會被解析的。

相關問題