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 to the Integer values, which have one more negative value). Thus the minimum value is simply the same as the maximum value, with the sign-bit flipped, so yes, -Double.MAX_VALUE is the lowest actual number you can represent with a double.

I suppose the Double.MAX_VALUE should be seen as maximum magnitude, in which case it actually makes sense to simply write -Double.MAX_VALUE. It also explains why Double.MIN_VALUE is the least positive value (since that represents the least possible magnitude).

But sure, I agree that the naming is a bit misleading. Being used to the meaning Integer.MIN_VALUE, I too was a bit surprised when I read that Double.MIN_VALUE was the smallest absolute value that could be represented. Perhaps they thought it was superfluous to have a constant representing the least possible value as it is simply a - away from MAX_VALUE :-)

(Note, there is also Double.NEGATIVE_INFINITY but I'm disregarding from this, as it is to be seen as a "special case" and does not in fact represent any actual number.)

Here is a good text on the subject.

Answer from aioobe on Stack Overflow
🌐
Microsoft Learn
learn.microsoft.com › en-us › dotnet › api › system.double.minvalue
Double.MinValue Field (System) | Microsoft Learn
Represents the smallest possible value of a Double. This field is constant. public: double MinValue = -1.7976931348623157E+308;
Top answer
1 of 6
226

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 to the Integer values, which have one more negative value). Thus the minimum value is simply the same as the maximum value, with the sign-bit flipped, so yes, -Double.MAX_VALUE is the lowest actual number you can represent with a double.

I suppose the Double.MAX_VALUE should be seen as maximum magnitude, in which case it actually makes sense to simply write -Double.MAX_VALUE. It also explains why Double.MIN_VALUE is the least positive value (since that represents the least possible magnitude).

But sure, I agree that the naming is a bit misleading. Being used to the meaning Integer.MIN_VALUE, I too was a bit surprised when I read that Double.MIN_VALUE was the smallest absolute value that could be represented. Perhaps they thought it was superfluous to have a constant representing the least possible value as it is simply a - away from MAX_VALUE :-)

(Note, there is also Double.NEGATIVE_INFINITY but I'm disregarding from this, as it is to be seen as a "special case" and does not in fact represent any actual number.)

Here is a good text on the subject.

2 of 6
14

These constants have nothing to do with sign. This makes more sense if you consider a double as a composite of three parts: Sign, Exponent and Mantissa. Double.MIN_VALUE is actually the smallest value Mantissa can assume when the Exponent is at minimun value before a flush to zero occurs. Likewise MAX_VALUE can be understood as the largest value Mantissa can assume when the Exponent is at maximum value before a flush to infinity occurs.

A more descriptive name for these two could be Largest Absolute (add non-zero for verbositiy) and Smallest Absolute value (add non-infinity for verbositiy).

Check out the IEEE 754 (1985) standard for details. There is a revised (2008) version, but that only introduces more formats which aren't even supported by java (strictly speaking java even lacks support for some mandatory features of IEEE 754 1985, like many other high level languages).

🌐
Kotlin
kotlinlang.org › api › latest › jvm › stdlib › kotlin › -double › -m-i-n_-v-a-l-u-e.html
MIN_VALUE | Core API – Kotlin Programming Language
Returns a Duration equal to this Double number of minutes. ... Returns a Duration equal to this Double number of nanoseconds. ... Returns a Duration equal to this Double number of seconds. ... Ensures that this value is not less than the specified minimumValue.
🌐
Codemia
codemia.io › home › knowledge hub › why is double.min_value in not negative
Why is Double.MIN_VALUE in not negative | Codemia
July 30, 2025 - Double.MIN_VALUE is the smallest positive normalized value that a double can represent in Java. It is approximately 4.9e-324, a very small number but crucially positive.
🌐
Javatpoint
javatpoint.com › java-double-min-method
Java Double min() Method with Examples
The min() method of Java Double class returns the double having minor value amongst two double values. The result returned is same as by invoking Math.min () method.
Find elsewhere
🌐
Tutorialspoint
tutorialspoint.com › java › lang › math_min_double.htm
Java - Math min(double x, double y) Method
The Java Math min(double a, double b) returns the smaller of two double values. That is, the result is the value closer to negative infinity. If the arguments have the same value, the result is that same value.
🌐
GeeksforGeeks
geeksforgeeks.org › java › java-guava-doubles-min-method-with-examples
Java Guava | Doubles.min() method with Examples - GeeksforGeeks
July 11, 2025 - Doubles.min() is a method of Doubles Class in Guava library which is used to find the least value present in an array. The value returned by this method is the smallest double value in the specified array.
🌐
MIT
web.mit.edu › java_v1.0.2 › www › javadoc › java.lang.Double.html
Class java.lang.Double
The lowest minimum value that a double can have is 2.2250738585072014E-308.
🌐
LabEx
labex.io › tutorials › java-java-double-min-method-117625
Mastering the Java Double Min Method | LabEx
In Java, the Double.min() method is used to find the smallest of two double values passed as arguments. It returns the numerically lower value of the two values passed.
🌐
Programiz
programiz.com › swift-programming › library › double › minimum
Swift Double minimum() (With Examples)
secondValue - another floating point value · returns the minimum element between firstValue and secondValue · // return the smallest among 10 and 20 var result1 = Double.minimum(10,20) print(result1) // return the smallest among 20.8 and 25.78 var result2 = Double.minimum(20.8,25.78) ...
🌐
Reddit
reddit.com › r/cpp_questions › why don't float/double have a max & min value like 'int' or 'char'?
r/cpp_questions on Reddit: Why don't float/double have a max & min value like 'int' or 'char'?
July 17, 2023 -

source: https://www.tutorialspoint.com/cplusplus/cpp_data_types.htm#

There's no data shown for the limits floats and doubles have.

However, 'int' is -2147483648 to 2147483647 and 'char' is 0 to 255

🌐
Cplusplus
cplusplus.com › forum › general › 53760
smallest double value greater zero - C++ Forum
October 30, 2011 - Hello, a few days ago i was wondering what the minimum value greater 0.0 is, that a double can represent. i checked std::numerical_limits< double >. but i found two different "mins" there: min() and denorm_min(). they give me different values. so i made my own minimum double, by setting only the last bit to 1 (see code below) and it turned out, that this value does not math the other two.
🌐
John D. Cook
johndcook.com › blog › 2010 › 06 › 08 › c-math-gotchas
C# math gotchas
May 19, 2024 - The constants DBL_MAX and ... double.MinValue are different because they minimize over different ranges. The constant DBL_MIN is the smallest positive value of a normalized double....
🌐
Microsoft Learn
learn.microsoft.com › en-us › dotnet › api › system.double.min
Double.Min(Double, Double) Method (System) | Microsoft Learn
Compares two values to compute which is lesser. public: static double Min(double x, double y) = System::Numerics::INumber<double>::Min;