#java #android
#java #Android
Вопрос:
Я хочу разобрать 78 в двойную переменную, где 78 хранится в виде строки
Я использовал приведенный ниже код для синтаксического анализа.
Double.parseDouble(78);
Она отображает ошибку исключения java.lang.NumberFormatException
Пожалуйста, скажите мне, как я могу разобрать строку 78 в double
Комментарии:
1. developer.android.com/reference/java/lang/Double.html множество подобных проблем можно решить, используя доступную ссылку.
Ответ №1:
Ну, то, что вы передали, было целым числом, а не строкой.
Чтобы использовать ее, сделайте это:
Double.parseDouble("78");
Комментарии:
1. Или, если вы действительно хотели преобразовать целое число в double …
double d = 78;
…2. Извините, я привожу здесь только пример, я не передаю 78 в моем реальном коде, я передал там строковую переменную
3. @Mohit. итак, вы должны опубликовать свой полный код, иначе вы получите ответы, подобные этому (или несколько полные)
4. Вероятно, по какой-либо причине строка в конечном итоге содержит что-то другое, кроме двух цифр? Код, вероятно, помог бы, да.
5. У меня есть подозрение, что там есть начальный или конечный пробел. Это могло бы быть что-то более экзотическое, но обычно это простые вещи.
Ответ №2:
Этого не должно быть, Double.parseDouble(78)
но Double.parseDouble("78")
вместо этого.
В этом случае это не должно давать вам никаких исключений.
Комментарии:
1. Извините, я привожу здесь только пример, я не передаю 78 в моем реальном коде, я передал там строковую переменную
Ответ №3:
передайте ее как String
Double.parseDouble("78");
Комментарии:
1. Извините, я привожу здесь только пример, я не передаю 78 в моем реальном коде, я передал там строковую переменную
2. Можете ли вы сказать мне, какую именно строку она передает?
Ответ №4:
Вам нужно заключить ваш параметр в кавычки.
Double.parseDouble("78");
Комментарии:
1. Извините, я привожу здесь только пример, я не передаю 78 в моем реальном коде, я передал там строковую переменную
2. Можете ли вы опубликовать код для этого преобразования строки, которое вы выполняете?
Ответ №5:
Ну, я сильно подозреваю, что значение передаваемой вами строковой переменной на самом деле не является допустимым числом. Я предлагаю вам записать значение каждого символа в Юникоде, чтобы вы могли точно видеть, что там.
Приведенный вами код (передача строки «78») должен быть абсолютно точным… но у вас могут быть некоторые дополнительные, невидимые символы в вашей реальной строке. Регистрация точных значений должна прояснить это.
Ответ №6:
перед тем, как вы проанализируете свою строковую переменную, используйте метод trim()
, чтобы убедиться, что ваша строка содержит только числа, , попробуйте это :
myStringToParse = myStringToParse.trim();
Double.parseDouble(myStringToParse);