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

Regards,
Nikita

Reply via email to