Hmm. I understand the motivation here and the asymmetry with the integral types, but on the whole I don't think deprecating {Float, Double}.MIN_VALUE and recommending use of a differently-named field with the same value would be a net improvement.

-Joe

On 12/2/2024 3:17 PM, Éamonn McManus wrote:
At Google, we've had several issues over the years relating to Double.MIN_VALUE. People have not unreasonably supposed that Double.MIN_VALUE has the same relationship to Double.MAX_VALUE as Integer.MIN_VALUE has to Integer.MAX_VALUE. So they think that Double.MIN_VALUE is the (finite) negative number of largest magnitude, rather than the positive number of smallest magnitude. We're currently thinking of adding a constant MIN_POSITIVE_VALUE to Guava's Doubles <https://guava.dev/releases/snapshot-jre/api/docs/com/google/common/primitives/Doubles.html> class and having static analysis that suggests using that instead of Double.MIN_VALUE, if that is indeed what you meant, or of course using -Double.MAX_VALUE if *that* is what you meant.

A few JDK and JavaFX bugs show that Google engineers are not the only ones to be confused by this:
https://bugs.openjdk.org/browse/JDK-4218647
https://bugs.openjdk.org/browse/JDK-8092698
https://bugs.openjdk.org/browse/JDK-8156186

So we also wonder if it would make sense to deprecate Double.MIN_VALUE itself and introduce Double.MIN_POSITIVE_VALUE with the same meaning. Obviously the same thing would apply to Float.

Reply via email to