# Java: Why's Double.MIN_VALUE is positive? Integer.MIN_VALUE is negative!

Curiously, `Double.MIN_VALUE`

holds the value 2^{-1022}. This is a positive value, as opposed to `Integer.MIN_VALUE`

which holds the value -2147483648.

The reason is most likely that the smallest double value is easily expressed as `-Double.MAX_VALUE`

. The IEEE 754 format has one bit reserved for the sign and the remaining bits representing the magnitude. This means that it is symmetrical around origo (as opposed int values, which have one more negative value).

## So what’s up with 2^{-1022}?

This value is the smallest value greater than 0 that the IEEE 754 allows you to express. So `Double.MIN_VALUE`

(and `Double.MAX_VALUE`

) should be thought of as the minimum (and maximum) positive magnitudes.

Here is a good text on the subject.

Finally, the same constant is called `Double.EPSILON`

in .NET, which is arguably a better name.