On Mon, Mar 30, 2015 at 8:25 AM, Yasuo Ohgaki <yohg...@ohgaki.net> wrote: > Hi all, > > On Mon, Mar 30, 2015 at 9:07 AM, Yasuo Ohgaki <yohg...@ohgaki.net> wrote: > >> Hi Jakub, >> >> On Mon, Mar 30, 2015 at 4:33 AM, Jakub Zelenka <bu...@php.net> wrote: >> >>> I would like to add a new option to JSON for dealing with large floats. >>> The >>> use case is mainly for decoder but can be used for encoder as well. >>> >>> JSON_FLOAT_AS_STRING >>> decode: all float values will be decoded as string >>> - It's often an issue for very large float values with many fractional >>> digits that are coming from platforms that support larger float >>> representation than double. In that case the conversion is lost and there >>> is no way how to get it back (see http://bugs.php.net/68456 [pls ignore >>> my >>> initial dump comments when I didn't get the issue :)] and an example of >>> the >>> lost precision here http://3v4l.org/80iCh ). Converting the value to >>> string >>> keep the precision and resolves the problem. >>> >>> encode: all float values will be encoded as string >>> - re-using the constant for encoder makes sense if PHP creates JSON for >>> platform that support lower float type (e.g. C float) and the precision >>> loss is not acceptable >>> >>> >>> I think that this is more a bugfix as the precision is lost without any >>> way >>> how to get it back (except pre-processing json string with regular >>> expression). I would like to add it to 5.6.x if there are no objections? >>> >> >> Converting int/float to PHP native type is obvious bug. >> We must consider compatibility for released versions, so >> +1 for adding JSON_FLOAT_AS_STRING option. >> >> "int" should be fixed also. >> http://3v4l.org/95dHM >> >> So option may be JSON_SCALAR_AS_STRING or >> additional JSON_INT_AS_STRING. >> >> PHP7 should have string scalars by default. IMHO. >> > > I didn't notice this bug before. This bug make me worry that new PHP7 > type hint will create a lot of type casting bugs because even C programmer > makes this kind of design mistake... > > If it's possible, coercive STH for weak type hint mode will help to reduce > type casting bugs. IMHO.
Same effects but totally unrelated topics. All functions dealing with large external numbers had the same issues, since ever. It has nothing to do with STH. Cheers, -- Pierre @pierrejoye | http://www.libgd.org -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php