Sé que Double
es una clase de contenedor, y contiene el número double
. Hoy, he visto otra diferencia principal:Java: diferentes dobles y dobles en comparación
double a = 1.0;
double b = 1.0;
Double c = 1.0;
Double d = 1.0;
System.out.println(a == b); // true
System.out.println(c == d); // false
So strange with me !!!
Por lo tanto, si utilizamos Double
, cada vez, tenemos que hacer algo como esto:
private static final double delta = 0.0001;
System.out.println(Math.abs(c-d) < delta);
que no podemos explicar por qué Doble directamente Haga la comparación equivocada. Por favor explique por mi
gracias :)
Use 'c.equals (d)' en lugar de '' ==. '==' solo verifica las referencias. – Baz
@Baz Ah, lo entiendo. El doble es una clase. Comparará el objeto en lugar de comparar el valor. A este problema le gusta cuando lo hacemos con 'String'. debería usar 'igual' en lugar de' == ':) – hqt
Sí, exactamente ... – Baz