Respuestas:
Puedes usar Double.parseDouble()
para convertir de String
a a double
:
String text = "12.34"; // example String
double value = Double.parseDouble(text);
Para su caso, parece que quiere:
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.]", ""));
- esto básicamente reemplaza todos los caracteres que no son un número o .
nada, dejando solo el número y el punto decimal para analizar.
Double
lugar del double
uso de tipo primitivo Double.valueOf(String)
.
Si tiene problemas para analizar la cadena a valores decimales, debe reemplazar "," en el número a "."
String number = "123,321";
double value = Double.parseDouble( number.replace(",",".") );
Para convertir una cadena de nuevo en un doble, intente lo siguiente
String s = "10.1";
Double d = Double.parseDouble(s);
El método parseDouble logrará el efecto deseado, y también lo hará el método Double.valueOf ().
double d = Double.parseDouble(aString);
Esto debería convertir la cadena aString en el doble d.
Uso new BigDecimal(string)
. Esto garantizará el cálculo adecuado más adelante.
Como regla general, use siempre BigDecimal
para cálculos sensibles como el dinero.
Ejemplo:
String doubleAsString = "23.23";
BigDecimal price = new BigDecimal(doubleAsString);
BigDecimal total = price.plus(anotherPrice);
Solo necesita analizar los valores de cadena usando Double
String someValue= "52.23";
Double doubleVal = Double.parseDouble(someValue);
System.out.println(doubleVal);
Citando nuevamente la cita de Robertiano, porque esta es, con mucho, la versión adaptativa más versátil y de localización. Se merece una publicación completa!
Otra opción:
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);
También hay otra manera.
Double temp = Double.valueOf(str);
number = temp.doubleValue();
Double es una clase y "temp" es una variable. "número" es el número final que está buscando.
Esto es lo que haría
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
}
Por ejemplo, si ingresa la Cadena "4 55,63. 0", la salida será el número doble 45563.0
Usar Double.parseDouble()
sin try/catch
bloque circundante puede causar potencialNumberFormatException
si la cadena doble de entrada no se ajusta a un formato válido.
Guava ofrece un método de utilidad para esto que regresa null
en caso de que su String no pueda analizarse.
Double valueDouble = Doubles.tryParse(aPotentiallyCorruptedDoubleString);
En tiempo de ejecución, una entrada de cadena con formato incorrecto produce rendimientos null
asignados avalueDouble
Lo usé para convertir cualquier número de Cadena al doble cuando necesita int, solo convierta el tipo de datos de num y num2 a int; tomó todos los casos para cualquier cadena doble 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);
Puede usar double.parseDouble ();
String num = "10.1";
Double x = Double.parseDouble(num);