> > It really don't make much sense: > var_dump( PHP_FLOAT_MIN < 0 ); > var_dump( PHP_INT_MIN < 0 );
I quite agree that this is an inconsistency, but I guess that it's here to stay now for BC reasons. What we can do is fix the doc. > 2.2250738585072E-308 > This is negative. It isn't, it is a strictly positive number with a negative exponent: 0.000(...)00022250738585072. FLT_MIN is the smallest real near 0. Are you looking for -FLT_MAX? > With IEEE754 floats, there are positive and negative zeros, so the range > above and below 0 is the same. It's interesting to know that - PHP_FLOAT_MAX is actually the smallest representable floating point number (unlike - PHP_INT_MAX). It would be great to document this as well. I would propose to change the current documentation to: PHP_FLOAT_MIN (float) > Smallest representable POSITIVE floating point number. If you need the > smallest representable floating point number, use - PHP_FLOAT_MAX. > Available as of PHP 7.2.0. What we could also do is introduce another constant to represent the actual smallest possible float, but its naming would likely conflict with PHP_FLOAT_MIN, and it does not bring much value, so I'm not sure whether this is a good idea. We did introduce a PHP_INT_MIN though, even though it was available as ~ PHP_INT_MAX, so it's worth mentioning. Thoughts? On Wed, 3 Apr 2019 at 13:50, Michael Wallner <m...@php.net> wrote: > On 03/04/2019 12:27, Diogo Neves wrote: > > It really don't make much sense: > > > > <?php > > > > var_dump( PHP_FLOAT_MIN < 0 ); > > var_dump( PHP_INT_MIN < 0 ); > > > > On Wed, Apr 3, 2019 at 10:52 AM Benjamin Morel <benjamin.mo...@gmail.com > > > > wrote: > > > >> Hi internals, > >> > >> I just used PHP_FLOAT_MIN for the first time, and was surprised that it > is > >> the smallest **positive** number representable. Is this expected? > >> > >> This is unlike PHP_INT_MIN, which is the absolute smallest representable > >> integer, and as such is negative: > >> > >> echo PHP_INT_MIN; // -9223372036854775808 > >> echo PHP_FLOAT_MIN; // 2.2250738585072E-308 > >> > >> If it is intended, maybe the doc > >> <https://www.php.net/manual/en/reserved.constants.php> should be clear > >> about this, at the moment it is just: > >> > >> Smallest representable floating point number. > >> > >> > >> Which is confusing IMO. > > FLT_MIN is the smallest real near 0. Are you looking for -FLT_MAX? > With IEEE754 floats, there are positive and negative zeros, so the range > above and below 0 is the same. > > > -- > Regards, > Mike > >