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

时间:2012-02-09 15:45:10

标签: java string numbers

我想对recordstore的四列的值求和。这四列中的值是decimal point的数字,例如30.00; recordstore行是csv-like数据,我使用用户定义的函数来获取特定列的值:所以我得到了四列的String,例如{{1 }}。现在我想"30.00"这四个值;所以我必须sum他们进入convert!但是当我尝试使用int时,Integer.parseInt就会被提升!那么如何在这种情况下得到总和?

3 个答案:

答案 0 :(得分:6)

即使30.00看起来像是一个整数,Java认为它看起来像一个浮点值(由于小数点)。

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

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

(顺便说一句,不是特定于J2ME的。)

答案 1 :(得分:1)

如果您的数字包含小数点,则需要解析为双精度数。

Double.parseDouble("30.00");

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

答案 2 :(得分:0)

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