Преобразование String для двойного использования в Java

Я хочу изменить значение double на String.

if((e.getSource() == jBook)) {
    String name = jlbName.getText();
    String date = jlbDateProduce.getText();
    String time = jr1.getText();
    int number = (Integer.parseInt(jtfNoOfTicket.getText().trim()));
    String total = jlbTotal.getText();
    String price = jlbPrice.getText();

    //Passing
    ticketReservation frame = new ticketReservation(
        name, date, time, price, total, String.valueOf(number));
}

В другом классе мне нужно использовать это значение для подсчета total. Есть ли способ конвертировать String обратно в double?

+217
24 апр. '11 в 9:12
источник поделиться
9 ответов

Вы можете использовать Double.parseDouble() для преобразования String в double:

String text = "12.34"; // example String
double value = Double.parseDouble(text);

В вашем случае это выглядит так, как вы хотите:

double total = Double.parseDouble(jlbTotal.getText());
double price = Double.parseDouble(jlbPrice.getText());
+382
24 апр. '11 в 9:14
источник

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


String number = "123,321";
double value = Double.parseDouble( number.replace(",",".") );
+40
03 апр. '14 в 14:34
источник
double d = Double.parseDouble(aString);

Это должно преобразовать строку aString в double d.

+35
24 апр. '11 в 9:16
источник

Используйте new BigDecimal(string). Это гарантирует правильное вычисление позже.

Как правило, всегда используйте BigDecimal для чувствительных вычислений, таких как деньги.

Пример:

String doubleAsString = "23.23";
BigDecimal price = new BigDecimal(doubleAsString);
BigDecimal total = price.plus(anotherPrice);
+28
24 апр. '11 в 9:18
источник

Чтобы преобразовать строку обратно в двойную, попробуйте следующее

String s = "10.1";
Double d = Double.parseDouble(s);

Метод parseDouble достигнет желаемого эффекта, а также метод Double.valueOf().

+28
17 апр. '15 в 5:42
источник

Вам нужно всего лишь проанализировать значения String, используя Double

String someValue= "52.23";
Double doubleVal = Double.parseDouble(someValue);
System.out.println(doubleVal);
+19
22 мар. '14 в 12:00
источник

Ссылаясь на цитату из Robertiano выше снова - потому что это, безусловно, самая универсальная и локализированная адаптивная версия. Он заслуживает полной публикации!

Другая опция:

DecimalFormat df = new DecimalFormat(); 
DecimalFormatSymbols sfs = new DecimalFormatSymbols();
sfs.setDecimalSeparator(','); 
df.setDecimalFormatSymbols(sfs);
double = df.parse(number).doubleValue();
+8
03 сент. '15 в 20:05
источник
String double_string = "100.215";
Double double = Double.parseDouble(double_string);
+6
01 авг. '16 в 9:44
источник

Есть и другой способ.

Double temp = Double.valueOf(str);
number = temp.doubleValue();

Double - это класс, а "temp" - переменная. "number" - это конечный номер, который вы ищете.

+3
27 янв. '14 в 22:03
источник

Посмотрите другие вопросы по меткам или Задайте вопрос