簡體   English   中英

為什么代表數字的String的Integer.parseInt在J2ME中拋出java.lang.NumberFormatException?

[英]Why Integer.parseInt of a String representing a number throws java.lang.NumberFormatException in J2ME?

我想對一個記錄recordstore的四列的值recordstore 這四列中的值是帶decimal point ,例如30.00 ; recordstore行是一個csv-like數據,我使用它使用用戶定義的函數來獲取特定列的值:因此,我獲得了四個列的String ,例如"30.00" 現在,我想對這四個值sum 所以我必須convert它們convertint 但是,當我嘗試使用Integer.parseInt ,就會引發java.lang.NumberFormatException 那么如何在這種情況下求和呢?

盡管30.00對您來說似乎是一個整數,但Java認為它看起來像一個浮點值(由於小數點)。

因此,您需要將其解析為一個double,然后獲取整數部分。

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

(順便說一下,這不是特定於J2ME的。)

如果您的數字包含小數點,則需要解析為雙精度。

Double.parseDouble("30.00");

在這里,您可以使用Math方法,也可以截斷以獲得Integer。

作為另一種選擇,您還可以使用Integer.parseInt("30.00".split("\\\\.")[0])
這將消除對小數點分隔符的依賴性(如果字符串中始終有一個點,但是您對語言環境沒有控制權,則會對其進行解析。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM