On Sun, Apr 14, 2024, at 11:49 AM, Tim Düsterhus wrote:
> Hi
>
> On 4/14/24 16:33, Gina P. Banyard wrote:
>> Considering that PHP 8.4 is also adding new rounding modes via the "Add 4
>> new rounding modes to round() function" RFC [4] attempting to solve this
>> issue in this next version of PHP seems like a good idea.
>> In my discussions with Saki about this issue, it seems that her and Tim have
>> thought about creating a new enum for rounding modes, looking something like
>> this:
>>
>> enum RoundingMode {
>> case HalfAwayFromZero;
>> case HalfTowardsZero;
>> case HalfEven;
>> case HalfOdd;
>> case TowardsZero;
>> case AwayFromZero;
>> case NegativeInfinity; // or case Floor;
>> case PositiveInfinity; // or case Ceiling;
>> }
> For PHP 8.4, I'd first make it `int|RoundingMode` to keep the constant
> values the same (in case the constants are re-used by a userland
> library). Narrowing it down to just RoundingMode and updating the
> constants can happen in a later version.
I support this change. While I don't know who would be using the rounding mode
constants for other purposes, I'm not opposed to taking a more gradual approach
if that's the consensus. At least a version would allow people time to
realize, oops, I should not use someone else's constants. :-)
I also don't have a strong opinion between making it global vs a Math
namespace. (But as Derick notes, not Maths, for consistency.)
--Larry Garfield