On Mon, May 30, 2016 at 8:01 PM, Jakub Zelenka <bu...@php.net> wrote:

> On Mon, May 30, 2016 at 7:28 PM, Nikita Popov <nikita....@gmail.com>
> wrote:
>
>> On Mon, May 30, 2016 at 6:34 PM, Jakub Zelenka <bu...@php.net> wrote:
>>
>>> On Fri, Sep 4, 2015 at 1:41 AM, Yasuo Ohgaki <yohg...@ohgaki.net> wrote:
>>>
>>> > Hi all,
>>> >
>>> > IEEE 754 double cannot express exact float values. That said,
>>> > float values expressed by json/serialize/var_export/echo/print
>>> > are not precise enough in many cases.
>>> >
>>> > Issues:
>>> >  - json_encode() uses EG(precision)=14 that truncates float values.
>>> > echo()/print()
>>> >    does this as well.
>>> >  - large EG(precision)/PG(serialize_precision) prints meaningless
>>> values.
>>> >
>>> > This RFC proposes zend_dtoa()'s 0 mode support which rounds float value
>>> > to nearest value.
>>> >
>>> > https://wiki.php.net/rfc/precise_float_value
>>> > https://github.com/php/php-src/pull/1455
>>> >
>>> > This change is simple enough for PHP 7.0. IMO.
>>> > Comments/suggestions are appreciated!
>>> >
>>> >
>>> Hi,
>>>
>>> After asking Yasuo, I'm putting forward this RFC to have more precise
>>> float
>>> to string decoding at least in PHP 7.1. I cleaned the RFC up a little bit
>>> and it's targeting just 7.1.
>>>
>>> It has been some time since this was announced so I will keep it open
>>> for a
>>> week or two and then plan to start vote.
>>>
>>
>> Thanks for taking over this proposal!
>>
>> I've already mentioned this on the PR when this was originally proposed,
>> but bringing it up here as well:
>>
>> This proposal adds a new json.precision setting. Why? I've been told that
>> this is more flexible, which is fair enough, but imho we should have very
>> strong reasons for introducing new ini settings. Reasons that go beyond "it
>> might be useful to someone ... maybe?" So what's the particular use-case
>> here? Where is it necessary to export inaccurate floating point numbers in
>> JSON? And should such a use-case indeed exist, why is this a global setting
>> rather than an option of json_encode? Furthermore, note that even without
>> this new ini option, you always have the option of temporarily changing
>> serialize_precision for a json_encode call, if you *really* need it.
>>
>> Please also take a look at this comment on the implementation:
>> https://github.com/php/php-src/pull/1455#discussion_r53933480
>>
>>
> To be honest I have been thinking again about it before posting it. I
> thought that it might be good to have at least a voting option or keep it
> there for discussion but I don't really mind to drop it and just use just
> serialize_precision by default. I know that it was me who suggested
> json.precision initialy but it wasn't probably the best idea and it might
> be a bit confusing for users. If no one thinks that it's useful and we
> should have a vote about it, I will remove it in the next couple of days.
>
>
I have updated the RFC and dropped the json.precision part. Instead of
that, there will be a voting option only whether to use serialize_precision
for json_encode.

If there are no other issues, I would like to open voting sometimes next
week.

Cheers

Jakub

Reply via email to