Risposte:
Puoi usare Double.parseDouble()per convertire a Stringin double:
String text = "12.34"; // example String
double value = Double.parseDouble(text);
Per il tuo caso sembra che tu voglia:
double total = Double.parseDouble(jlbTotal.getText());
double price = Double.parseDouble(jlbPrice.getText());
double total = Double.parseDouble(jlbTotal.getText());
double total = Double.parseDouble(jlbTotal.getText().replaceAll("[^0-9.]", ""));- questo sostanzialmente sostituisce tutti i caratteri che non sono un numero o .nulla, lasciando solo il numero e il punto decimale da analizzare.
Doubleanziché doubleuso di tipo primitivo Double.valueOf(String).
In caso di problemi nell'analisi della stringa in valori decimali, è necessario sostituire "," nel numero in "."
String number = "123,321";
double value = Double.parseDouble( number.replace(",",".") );
Per riconvertire una stringa in una doppia, provare quanto segue
String s = "10.1";
Double d = Double.parseDouble(s);
Il metodo parseDouble otterrà l'effetto desiderato, così come il metodo Double.valueOf ().
double d = Double.parseDouble(aString);
Questo dovrebbe convertire la stringa aString nella doppia d.
Usa new BigDecimal(string). Ciò garantirà il corretto calcolo in seguito.
Come regola generale, utilizzare sempre BigDecimalper calcoli sensibili come il denaro.
Esempio:
String doubleAsString = "23.23";
BigDecimal price = new BigDecimal(doubleAsString);
BigDecimal total = price.plus(anotherPrice);
Devi solo analizzare i valori String usando Double
String someValue= "52.23";
Double doubleVal = Double.parseDouble(someValue);
System.out.println(doubleVal);
Citando ancora una volta la citazione di Robertiano, perché questa è di gran lunga la versione più versatile e adattabile alla localizzazione. Merita un post completo!
Un'altra opzione:
DecimalFormat df = new DecimalFormat();
DecimalFormatSymbols sfs = new DecimalFormatSymbols();
sfs.setDecimalSeparator(',');
df.setDecimalFormatSymbols(sfs);
double d = df.parse(number).doubleValue();
String double_string = "100.215";
Double double = Double.parseDouble(double_string);
C'è anche un altro modo.
Double temp = Double.valueOf(str);
number = temp.doubleValue();
Double è una classe e "temp" è una variabile. "numero" è il numero finale che stai cercando.
Questo è quello che vorrei fare
public static double convertToDouble(String temp){
String a = temp;
//replace all commas if present with no comma
String s = a.replaceAll(",","").trim();
// if there are any empty spaces also take it out.
String f = s.replaceAll(" ", "");
//now convert the string to double
double result = Double.parseDouble(f);
return result; // return the result
}
Ad esempio, inserendo la stringa "4 55,63. 0" l'output avrà il doppio numero 45563.0
L'uso Double.parseDouble()senza try/catchblocco circostante può causare potenziale NumberFormatExceptionse la doppia stringa di input non è conforme a un formato valido.
Guava offre un metodo di utilità per questo che ritorna nullnel caso in cui la stringa non possa essere analizzata.
Double valueDouble = Doubles.tryParse(aPotentiallyCorruptedDoubleString);
In fase di esecuzione, viene nullassegnato un input di stringa non validovalueDouble
Utilizzato questo per convertire qualsiasi numero di stringa per raddoppiare quando è necessario int semplicemente convertire il tipo di dati da num e num2 in int; ha preso tutti i casi per ogni stringa doppia con Eng: "Bader Qandeel"
public static double str2doubel(String str) {
double num = 0;
double num2 = 0;
int idForDot = str.indexOf('.');
boolean isNeg = false;
String st;
int start = 0;
int end = str.length();
if (idForDot != -1) {
st = str.substring(0, idForDot);
for (int i = str.length() - 1; i >= idForDot + 1; i--) {
num2 = (num2 + str.charAt(i) - '0') / 10;
}
} else {
st = str;
}
if (st.charAt(0) == '-') {
isNeg = true;
start++;
} else if (st.charAt(0) == '+') {
start++;
}
for (int i = start; i < st.length(); i++) {
if (st.charAt(i) == ',') {
continue;
}
num *= 10;
num += st.charAt(i) - '0';
}
num = num + num2;
if (isNeg) {
num = -1 * num;
}
return num;
}
String s = "12.34";
double num = Double.valueOf(s);
Puoi usare double.parseDouble ();
String num = "10.1";
Double x = Double.parseDouble(num);