Преобразование double в String и обратно!
при каких то действиях мне это значение надо получить:
double tt = Double .valueOf(etv.getText().toString()); либо
double tt = Double .parseDouble(etv.getText().toString());
на планшете вываливается с ошибкой — на эмуляторе — все работает
(и да — на эмуляторе выводит точку) — может я неправильно форматирую в String?
Добавлено через 28 минут
Сам спросил — сам ответил — надо запятую менять на точку
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Преобразование дюймов в сантиметры и обратно
Помогите пожалуйста решить задание : Преобразование дюймов в сантиметры и обратно,предполагается.
Преобразование из строки в число Double
Как можно выполнить преобразование строки вида ‘2.023947’ к обьекту типа Double в Java1. .
как перевести из double в string
Привет всем, как можно перевести из double в string не используя стандартные функции! Добавлено.
Не проходит тест функции Double to String. Где ошибка?
не пойму почему не проходит тест к этому методу? Подскажите как правильно кто знает. Код: public.
34 / 30 / 10
Регистрация: 24.11.2014
Сообщений: 188
Записей в блоге: 11
Нужно указывать Locale в подобных функциях
Locale может быть разный и формат чисел, дат и др. тоже.
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
1 2 3 4 5 6 7 8 9 10 11
public static void main(String[] args) { double x = 98.354; String number = NumberFormat.getNumberInstance(new Locale("us")).format(x); System.out.println(number); x = Double.parseDouble(number); System.out.println(x); }
Добавлено через 16 минут
или можно ещё так:
1 2 3 4 5 6 7 8 9 10
public static void main(String[] args) throws ParseException { double x = 98.354; DecimalFormat format = new DecimalFormat(); String parseDouble = format.format(x); System.out.println(parseDouble); x = format.parse(parseDouble).doubleValue(); System.out.println(x); }
Добавлено через 5 минут
или решение в лоб )))
1 2 3 4 5 6 7 8
public static void main(String[] args) throws ParseException { double x = 98.354; String parse = String.format("%.3f", x); System.out.println(parse); x = Double.parseDouble(parse.replaceAll(",", ".")); System.out.println(x); }
Перевод String в double и наоборот
Есть строчный массив, нужно с него получить значение и перевести его в double вот так: «1.2s» = 1.2; Как это лучше сделать?
public class SimpleDotComTestDrive < public static void main (String [] args) < String[] iso_third = < "32s", "1s", "1.2s", "1.6s", "2s", "2.5s", "3s" >; String iso_string = (iso_third[1]).toString(); double iso_num = Double.valueOf(iso_string); System.out.println(iso_num); > >
Код выдает ошибку:
Exception in thread "main" java.lang.NumberFormatException: For input string: "1s" at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source) at sun.misc.FloatingDecimal.parseDouble(Unknown Source) at java.lang.Double.parseDouble(Unknown Source) at java.lang.Double.valueOf(Unknown Source) at SimpleDotComTestDrive.main(SimpleDotComTestDrive.java:6)
Как превратить String в double?
Пока с клавиатуры вводится 2.5, программа компилируется, но выдает кучу текста об ошибке, как я поняла, моя строка конвертируется в целое число, а как конвертировать в десятичные дроби в лекциях вроде нигде не было. Ну и второй вопрос — на целом числе условие выполнилось, но ни один пункт задачи не прошел валидацию, как так?
Дерево классов
Работа светофора для пешеходов запрограммирована следующим образом:
в начале каждого часа в течение трех минут горит зелёный сигнал,
затем в течение одной минуты — жёлтый ,
а потом в течение одной минуты — красный ,
затем опять зелёный горит три минуты и т. д.
Ввести с клавиатуры вещественное число t , означающее время в минутах, прошедшее с начала очередного часа.
Определить, сигнал какого цвета горит для пешеходов в этот момент.
Результат вывести на экран в следующем виде:
«зелёный» — если горит зелёный цвет,
«жёлтый» — если горит жёлтый цвет,
«красный» — если горит красный цвет.
Пример для числа 2.5 :
зелёный
Пример для числа 3 :
жёлтый
Пример для числа 4 :
красный
Пример для числа 5 :
зелёный
Требования:
Программа должна считывать вещественное число c клавиатуры.
Программа должна выводить текст на экран.
Если горит зелёный цвет, необходимо вывести текст: «зелёный»
Если горит жёлтый цвет, необходимо вывести текст: «жёлтый»
Если горит красный цвет, необходимо вывести текст: «красный»
Solution.java
- Solution.java
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Justinian Judge в Mega City One Master
16 июня 2019, 21:02
Integer.parseInt(s); превращаем в инт. Double.parseDouble(s) превращаем в double Также обрати внимание на эту строку в условиях: Ввести с клавиатуры вещественное число t, означающее время в минутах, прошедшее с начала очередного часа. то есть на вход может податься 38.989 или 41.4353.
16 июня 2019, 21:06
Окей, и как с ним быть? В лекциях этого не было, и видимо уже не будет. Валидатор не принимает пункты «выводить на экран», но ведь на экран как раз выводится. Не понимаю.
Justinian Judge в Mega City One Master
16 июня 2019, 21:32
Лекции это ориентир. Они никогда не покроют все, я рекомендую к нетривиальным/сложным/интересным задачам смотреть раздел Обсуждение задачи (после того как уже задача решена, чтобы не подсматривать готовое), также пролистывать комментарии к каждой лекции, включая лекции с задачами, там много и дополнительных ссылок дают на допматериалы, объясняют нюансы. Ну и гуглить, джава раш это практический курс, учеба очень сильно напоминает работу программиста, даже самые опытные с которых приходят на работу и получают такую же задачу, которую без понятия как решать, теорию по ней они не знают, и что делать? Гуглить, искать ответы, это то что программист делает минимум половину своего рабочего времени, процентов 40% гуглит, 40% читает чужой код, 20% от силы пишет свой. То что вещественные числа это double в лекциях было. Вводим в гугл double from string java, и сразу же ответ — даже открывать ссылки не нужно. Этот скилл жизненно необходим, его нужно развивать. Специфицика ИТ в том, что нельзя знать все, это невозможно. Работать с тем, что никому не известно, что не изучалось, это абсолютная норма и серые будни, к этому состоянию нужно просто привыкнуть. Как к воде. А фокусироваться на том, чтобы добыть результат. Программист это не человек который знает все, этот тот кто не боится не знать. А по задаче, у нас фактически пятиминутный цикл, какое бы мы число не ввели, если его разделить на 5, остаток будет нашим циклом от 0 к 5. Детальней: Оператор деления по модулю — Джава Раш то есть условно double d = Double.parseDouble(d); double time = d % 5; на выходе у нас будет число от 0 до 4.999 в периоде. И мы уже работаем согласно условиям
- Курсы программирования
- Регистрация
- Курс Java
- Помощь по задачам
- Цены
- Задачи-игры
Сообщество
JavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Java Преобразовать строку в двойную
Преобразование Java String в двойное можно сделать разными способами. Сегодня мы рассмотрим некоторые распространенные способы преобразования строки Java в примитивный тип данных double или объект Double. Обратите внимание, что, поскольку java поддерживает автоупаковку, двойной примитивный тип и объект Double могут использоваться взаимозаменяемо без каких-либо проблем.
Double d1 = 10.25d; //autoboxing from double to Double double d = Double.valueOf(10.25); //unboxing from Double to double
Java Преобразование строки в двойную

Double.parseDouble()
We can parse String to double using parseDouble() method. String can start with “-” to denote negative number or “+” to denote positive number. Also any trailing 0s are removed from the double value. We can also have “d” as identifier that string is a double value. This method returns double primitive type. Below code snippet shows how to convert string to double using Double.parseDouble() method.
String str = "+123.4500d"; double d = Double.parseDouble(str); // returns double primitive System.out.println(d); //-123.45, trailing 0s are removed System.out.println(Double.parseDouble("123.45001")); //123.45001 System.out.println(Double.parseDouble("123.45001d")); //123.45001 System.out.println(Double.parseDouble("123.45000")); //123.45 System.out.println(Double.parseDouble("123.45001D")); //123.45001
Double.valueOf()
This method works almost similar as parseDouble() method, except that it returns Double object. Let’s see how to use this method to convert String to Double object.
String str = "123.45"; Double d = Double.valueOf(str); // returns Double object System.out.println(d); //123.45 System.out.println(Double.valueOf("123.45d")); //123.45 System.out.println(Double.valueOf("123.4500d")); //123.45 System.out.println(Double.valueOf("123.45D")); //123.45
new Double(String s)
We can convert String to Double object through it’s constructor too. Also if we want double primitive type, then we can use doubleValue() method on it. Note that this constructor has been deprecated in Java 9, preferred approach is to use parseDouble() or valueOf() methods.
String str = "98.7"; double d = new Double(str).doubleValue(); //constructor deprecated in java 9 System.out.println(d); //98.7
DecimalFormat parse()
This is useful to parse formatted string to double. For example, if String is “1,11,111.23d” then we can use DecimalFormat to parse this string to double as:
String str = "1,11,111.23d"; try < double l = DecimalFormat.getNumberInstance().parse(str).doubleValue(); System.out.println(l); //111111.23 >catch (ParseException e)
Это все, что нужно для преобразования строки в двойную в java-программе. Ссылка: Двойной документ API