Hi,

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?

Cheers

Jakub

Reply via email to