Quiero convertir String
a un tipo de datos Double
. No sé si debería usar parseDouble
o valueOf
.¿Cuál es la diferencia entre Double.parseDouble (String) y Double.valueOf (String)?
¿Cuál es la diferencia entre estos dos métodos?
Quiero convertir String
a un tipo de datos Double
. No sé si debería usar parseDouble
o valueOf
.¿Cuál es la diferencia entre Double.parseDouble (String) y Double.valueOf (String)?
¿Cuál es la diferencia entre estos dos métodos?
parseDouble
devuelve una primitiva doble que contiene el valor de la cadena:
devuelve un nuevo doble inicializado con el valor representado por la cadena especificada, como se realizó por el método valueOf de la clase doble.
valueOf
devuelve una instancia doble, si ya está en la memoria caché, obtendrá la misma instancia en caché.
Devuelve una instancia doble que representa el valor doble especificado. Si no se requiere una nueva instancia doble, este método generalmente debe ser usado con preferencia al constructor Doble (doble), ya que este método es probable que proporcione un mejor rendimiento de espacio y tiempo en caché .
Para evitar la sobrecarga de crear una nueva instancia de objeto doble, que debería usar normalmente valueOf
+1 la familia de métodos 'valueOf()' es preferida por este motivo ... –
como dijiste Creo que se prefiere parseDouble(). ¿Por qué valueOf()? – breceivemail
La edición no fue mía, y no es válida, la revocaré – MByD
La documentación para parseDouble()
dice "Devuelve un nuevo doble inicializado al valor representado por la cadena especificada, como se realiza mediante el método valueOf de la clase Double.", Por lo que deberían ser idénticos.
Si desea convertir cadena a tipo de datos double entonces la mayoría elegir el método() parseDouble. Ver el código de ejemplo:
String str = "123.67";
double d = parseDouble(str);
Usted recibirá el valor doble. Consulte el tutorial StringToDouble al tutorialData.
¿Y qué hay del método valueOf()? – breceivemail
Devuelve un objeto doble que contiene el valor doble representado por el argumento string s. – Rajshri
Double.parseDouble(String)
devolverá un tipo primitivo double
. Double.valueOf(String)
devolverá un objeto contenedor del tipo Double
.
Así, por ej .:
double d = Double.parseDouble("1");
Double d = Double.valueOf("1");
Por otra parte, valueOf(...)
es un método sobrecargado.Tiene dos variantes:
Considerando parseDouble
es un método simple con la firma siguiente:
T hey ambos convierten una Cadena en un valor doble, pero donde el método parseDouble() devuelve el valor doble primitivo, el método valueOf() convierte adicionalmente el doble primitivo en un objeto de clase Doble envoltorio que contiene el valor doble primitivo.
La conversión de String a primitive double puede arrojar NFE (NumberFormatException) si el valor en String no es convertible en un doble primitivo.
métodoparseDouble() se utiliza para inicializar una cadena (que debería contener un valor numérico) .... el valor que devuelve es de tipo de datos primitivo, como int, float, etc.
Pero valueOf () crea un objeto de clase Wrapper. Tienes que desenvolverlo para obtener el doble valor. Se puede comparar con un chocolate. El fabricante envuelve el chocolate con papel de aluminio para evitar la contaminación. El usuario toma el chocolate, lo saca, lo arroja y lo come.
Observe la siguiente conversión.
int k = 100; Integer it1 = new Integer(k);
El int tipo de datos k se convierte en un objeto, IT1 usando la clase Integer. El objeto it1 se puede usar en la programación Java siempre que se requiera k un objeto.
El siguiente código se puede utilizar para desenvolver (volver a int del objeto Entero) el objeto it1.
int m = it1.intValue();
System.out.println (m * m); // imprime 10000
// intValue() es un método de la clase Integer que devuelve un tipo de datos int.
posible duplicado de [Double.valueOf (s) vs. Double.parseDouble] (http://stackoverflow.com/questions/7255078/double-valueofs-vs-double-parsedouble) –
este enlace está cerrado porque es un duplicado de mi respuesta :) – breceivemail