Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Comparar dobles

Estas en el tema de Comparar dobles en el foro de Java en Foros del Web. Buenas Alguien me podría aclarar el siguiente resultado que obtengo? Muchas gracias por vuestro tiempo! Double num_1 = 3569.23; Double num_2 = 3569.23; if ( ...
  #1 (permalink)  
Antiguo 15/03/2013, 10:13
 
Fecha de Ingreso: septiembre-2007
Mensajes: 152
Antigüedad: 16 años, 7 meses
Puntos: 1
Comparar dobles

Buenas

Alguien me podría aclarar el siguiente resultado que obtengo?

Muchas gracias por vuestro tiempo!

Double num_1 = 3569.23;
Double num_2 = 3569.23;

if ( num_1 == num_2 )
{
System.out.println("SON IGUALES");
}
else
{
System.out.println("SON DIFERENTES");
}


if ( Double.compare(num_1, num_2) == 1 )
{
System.out.println("SON IGUALES");
}
else
{
System.out.println("SON DIFERENTES");
}

Result:


SON DIFERENTES
SON DIFERENTES
  #2 (permalink)  
Antiguo 15/03/2013, 11:50
 
Fecha de Ingreso: agosto-2006
Mensajes: 159
Antigüedad: 17 años, 8 meses
Puntos: 4
Respuesta: Comparar dobles

Hola:

En el primer if estas comparando dos clases, que aunque tienen el mismo valor son clases distintas. Para comparar valores:
Código:
if(num_1.doubleValue() == num_2.doubleValue())
En el segundo if, al llamar a Double.compare(), éste devolverá 0 si ambos valores son numéricamente iguales, >0 si el primero es mayor que el segundo o <0 si el primero es menor que el segundo.
  #3 (permalink)  
Antiguo 15/03/2013, 14:18
 
Fecha de Ingreso: septiembre-2007
Mensajes: 152
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: Comparar dobles

Gracias André_01

Testeado y OK!

Un saludo
  #4 (permalink)  
Antiguo 15/03/2013, 14:28
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 16 años, 3 meses
Puntos: 57
Respuesta: Comparar dobles

Cita:
Iniciado por André_01 Ver Mensaje
Hola:

En el primer if estas comparando dos clases, que aunque tienen el mismo valor son clases distintas.
No es del todo cierto. Si son dos clases, pero en el IF se esta comparando el valor numerico de las clases. Para las wrapper class existe el autoboxing y unboxing
http://docs.oracle.com/javase/tutori...utoboxing.html

Este codigo se ejecuta sin problemas y con el resultado esperado:
Código Java:
Ver original
  1. Integer i1 = 1;
  2. Integer i2 = 1;
  3.  
  4. System.out.println("i1, i2 son iguales: " + (i1 == i2));
  5.  
  6. int i3 = 1;
  7. System.out.println("i1, i3 son iguales: " + (i1 == i3));
  #5 (permalink)  
Antiguo 15/03/2013, 15:54
 
Fecha de Ingreso: agosto-2006
Mensajes: 159
Antigüedad: 17 años, 8 meses
Puntos: 4
Respuesta: Comparar dobles

Cita:
Iniciado por posman Ver Mensaje
No es del todo cierto. Si son dos clases, pero en el IF se esta comparando el valor numerico de las clases. Para las wrapper class existe el autoboxing y unboxing
http://docs.oracle.com/javase/tutori...utoboxing.html

Este codigo se ejecuta sin problemas y con el resultado esperado:
Código Java:
Ver original
  1. Integer i1 = 1;
  2. Integer i2 = 1;
  3.  
  4. System.out.println("i1, i2 son iguales: " + (i1 == i2));
  5.  
  6. int i3 = 1;
  7. System.out.println("i1, i3 son iguales: " + (i1 == i3));
Muy interesante. Gracias por el apunte.

Etiquetas: dobles
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:57.