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

Reply via email to