Преобразование 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" - это конечный номер, который вы ищете.