Почему Integer.parseInt строки, представляющей число, выбрасывает java.lang.NumberFormatException в J2ME? - PullRequest
1 голос
/ 09 февраля 2012

Я хочу суммировать значения четырех столбцов recordstore.Значения в этих четырех столбцах являются числами с decimal point, например 30.00;строка recordstore представляет собой данные csv-like, с помощью которых я использую пользовательскую функцию для получения значения определенного столбца: поэтому я получаю String для четырех столбцов, например "30.00".Теперь я хочу sum эти четыре значения;поэтому я должен convert их в int!Но когда я пытаюсь использовать Integer.parseInt, тогда java.lang.NumberFormatException повышается!Так как же сделать сумму в этой ситуации?

Ответы [ 3 ]

6 голосов
/ 09 февраля 2012

Даже если 30.00 кажется вам целым числом, Java считает, что оно выглядит как значение с плавающей запятой (из-за десятичной запятой).

Поэтому вам нужно проанализировать его как двойное, а затем получить целую часть.

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

(Кстати, не J2ME).

1 голос
/ 09 февраля 2012

Если ваши числа содержат десятичные точки, вам нужно проанализировать их как двойные.

Double.parseDouble("30.00");

Оттуда вы можете использовать Math методы или просто усечь, чтобы получить целое число.

0 голосов
/ 09 февраля 2012

Так же, как и другой вариант, вы также можете использовать Integer.parseInt("30.00".split("\\.")[0])
Это позволит удалить зависимость от десятичного разделителя (если у вас всегда есть точка в строке, но у вас нет управленияlocale будет обработан.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...