Преобразование 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?

Ответ 1

Вы можете использовать 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());

Ответ 2

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


String number = "123,321";
double value = Double.parseDouble( number.replace(",",".") );

Ответ 3

double d = Double.parseDouble(aString);

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

Ответ 4

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

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

Пример:

String doubleAsString = "23.23";
BigDecimal price = new BigDecimal(doubleAsString);
BigDecimal total = price.plus(anotherPrice);

Ответ 5

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

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

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

Ответ 6

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

String someValue= "52.23";
Double doubleVal = Double.parseDouble(someValue);
System.out.println(doubleVal);

Ответ 7

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

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

DecimalFormat df = new DecimalFormat(); 
DecimalFormatSymbols sfs = new DecimalFormatSymbols();
sfs.setDecimalSeparator(','); 
df.setDecimalFormatSymbols(sfs);
double = df.parse(number).doubleValue();

Ответ 8

String double_string = "100.215";
Double double = Double.parseDouble(double_string);

Ответ 9

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

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

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