为什么表示数字的String的Integer.parseInt会在J2ME中抛出java.lang.NumberFormatException?

我想总结一个记录recordstore的四列的值。 这四列中的值是带decimal point ,例如30.00 ; recordstore行是一个csv-like数据,我使用userdefined函数来获取特定列的值:所以我得到了四列的String ,例如"30.00" 。 现在我想sum这四个值; 所以我必须convert它们convertint ! 但是当我尝试使用Integer.parseInt ,会引发java.lang.NumberFormatException ! 那么如何在这种情况下做出总和呢?

尽管30.00对你来说似乎是一个整数,但Java认为它看起来像一个浮点值(由于小数点)。

因此,您需要将其解析为double,然后获取整数部分。

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

(顺便说一下,不是J2ME特有的。)

如果您的数字包含小数点,则需要将其解析为double。

 Double.parseDouble("30.00"); 

从那里你可以使用Math方法或只是截断来获得你的整数。

正如另一种选择,你也可以使用Integer.parseInt("30.00".split("\\.")[0])
这将删除对小数分隔符的依赖(如果您在字符串中始终有一个点,但您无法控制它将被解析的语言环境