2011-04-18 32 views
22

Encontré un error en mi código que se reducía a comparar Double(0.0) con Double.MIN_VALUE. Esencialmente, lo siguiente devuelve falso:¿Double.MIN_VALUE es mayor que cero en Java?

System.out.println(0.0 > Double.MIN_VALUE); 

¿Cómo es esto posible?

+0

Aquí imprime falso. –

+1

Para el programador .NET: el equivalente para Java 'Double.MIN_VALUE' en .NET es' double.Epsilon'. El valor .NET de 'double.MinValue' es el valor representable * más grande * (en valor absoluto) (finito). –

Respuesta

38

De acuerdo con la javadoc for Double.MIN_VALUE, MIN_VALUE es:

una explotación, la valor distinto de cero positivo más pequeño constantes de tipo double

Así Double.MIN_VALUE no es negativo, que es el valor positivo que es tan cerca como un doble puede llegar a cero (sin ser cero).