Hi!

On 12.07.2024 at 17:26, Claude Pache wrote:
>
>> Le 12 juil. 2024 à 13:24, Christoph M. Becker <cmbecke...@gmx.de> a écrit :
>>
>> […]  At the very least we should be sure that we want to keep
>> this change, and document it well, to avoid discussions in every filed
>> ticket.
>>
>> […] Thus, I think the change
>> should better be reverted, and if at all, postponed to PHP 9, since I
>> neither regard this change as bug fix nor as a feature.
>
> See [1] and [2], which motivated the change.

Ah, thank you!  I probably should have checked this more thouroughly;
now even I can see that there was a *bug*, so it is okay for me to stick
with the fix (thank you, Saki!), but maybe UPGRADING should clarify the
issue a bit.  Currently, it states:

| The maximum precision that can be handled by round() has been extended
| by one digit.

While that is technically correct, probably few readers understand the
implications.

> I expect that `round($anything) == (int) round($anything)` for any float 
> between PHP_INT_MIN and PHP_INT_MAX, and I think that the change fixed that .

It seems to me that this is a reasonable expectation.

> Therefore, I am for keeping the change, and ensuring that there are test 
> cases for 4503599627370495.5 (the largest float with fractional part).

Makes sense (unless there is already such a test, of course).

> [1]: https://github.com/php/php-src/issues/12143#issuecomment-1713465981
> [2]: https://3v4l.org/3Q7BC

Cheers,
Christoph

Reply via email to