Re: json_decode/encode should return full precision values by default

From: Date: Wed, 29 Jul 2015 23:35:10 +0000
Subject: Re: json_decode/encode should return full precision values by default
References: 1 2 3 4 5 6 7 8 9 10 11 12 13  Groups: php.internals 
Request: Send a blank email to internals+get-87380@lists.php.net to get a copy of this message
On Wed, Jul 29, 2015 at 5:25 PM, Yasuo Ohgaki <yohgaki@ohgaki.net> wrote: > Hi all, > > On Thu, Jul 30, 2015 at 7:44 AM, Yasuo Ohgaki <yohgaki@ohgaki.net> wrote: > > > On Thu, Jul 30, 2015 at 1:13 AM, Nikita Popov <nikita.ppv@gmail.com> > > wrote: > > > >> Instead of continuing to use serialize_precision, which will produce > >> unnecessarily long outputs for many values, why don't we just switch to > >> using the 0 mode of zend_dtoa, i.e. to return the shortest output that > is > >> still accurate if interpreted in round-to-nearest. I think this is what > >> everybody else is using when they convert floating point numbers to > >> strings. I guess we may not be able to change normal floating point > >> printing to use this, but this seems like the best mode for anything > using > >> serialize_precision now and everything that should be using it (like > JSON, > >> and queries, etc). > > > > > > I prefer your proposal! > > Your proposal is a lot better than now. > > Anyone has opinion for this? > > > > I'm writing the RFC and I would like to make this the first option. i.e. > > serialize_precision=0 uses "zend_dtoa 0 mode" for all data exchange > > functions (json/serialize/var_exrport. Anyone care about WDDX/XML_RPC?) > > > > I wrote draft RFC. > > https://wiki.php.net/rfc/precise_float_value > > Please comment. I would like to start RFC discussion shortly. > Thank you. > My thought would be why not -1 to make it obvious it has special meaning? When I see precision=0 I tend to think that means my numbers will be returned as ints no matter what (there is zero fractional precision) whereas this takes a valid value for precision and gives it special meaning. I fully support your end game, but giving a valid value a special meaning I do not like. > > -- > Yasuo Ohgaki > yohgaki@ohgaki.net >

« previous php.internals (#87380) next »