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.

Cheers

Jakub

Reply via email to