为什么表示数字的String的Integer.parseInt会在J2ME中抛出java.lang.NumberFormatException?
我想总结一个记录recordstore
的四列的值。 这四列中的值是带decimal point
,例如30.00
; recordstore
行是一个csv-like
数据,我使用userdefined函数来获取特定列的值:所以我得到了四列的String
,例如"30.00"
。 现在我想sum
这四个值; 所以我必须convert
它们convert
成int
! 但是当我尝试使用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])
这将删除对小数分隔符的依赖(如果您在字符串中始终有一个点,但您无法控制它将被解析的语言环境 。