Re: [RFC] [Discussion] Allow int type argument to BCMath function
| From: | Juliette Reinders Folmer | Date: | Mon, 08 Jul 2024 03:59:36 +0000 |
| Subject: | Re: [RFC] [Discussion] Allow int type argument to BCMath function | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-124274@lists.php.net to get a copy of this message | ||
On 8-7-2024 5:18, Saki Takamachi wrote:
Hi Juliette,Hi Saki, Just wondering: whySince floating point numbers always contain a certain amount of error, I believe that they are not suitable as arguments for BCMath. Okay, so in that case, I must be missing something.int|stringinstead offloat|string? In my experience, floats are the more pertinent type for which to use the BCMath extension. Smile, Juliette
For example, 0.285 becomes 0.284999... in floating point. From the perspective of arbitrary precision math, there is no universally agreeable way to properly handle values like this: there will always be people who want to treat it as 0.285, and people who want to treat it as 0.284999....I honestly don't understand what you are saying here. If 0.285 is a string, then no type conversion would be needed to pass it to BCMath anyhow. Otherwise, 0.285 would be a floating point number already. If the type for BCMath would become
int|string, in non-strict mode, there would be quite a significant change in behaviour for the BCMath functions as passing the _float_ 0.285 would previously result in the string "0.285" being passed to the BCMath function, but would now result in the integer 0 being passed.
I think this BC-break will need to be called out as it is not mentioned in the RFC.
I also think this BC-break should be enough reason not to accept the RFC.
Smile,
Juliette