Bug #70137 [Opn->Csd]: json_encode/decode should use max precision for float like values by default

From: Date: Tue, 06 Sep 2016 17:52:09 +0000
Subject: Bug #70137 [Opn->Csd]: json_encode/decode should use max precision for float like values by default
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-203842@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=70137&edit=1 ID: 70137 Updated by: bukka@php.net Reported by: yohgaki@php.net Summary: json_encode/decode should use max precision for float like values by default -Status: Open +Status: Closed Type: Bug Package: JSON related Operating System: any PHP Version: Irrelevant -Assigned To: +Assigned To: bukka Block user comment: N Private report: N New Comment: This has been already done in precise float value RFC implementaion (sorry forgot to update this bug report) that is part of 7.1 Previous Comments: ------------------------------------------------------------------------ [2015-07-25 22:16:14] yohgaki@php.net Description: ------------ json_encode/decode uses 'precision'. It should use 'serialize.precision' to handle float like JSON numeric to be more precise. Test script: --------------- [yohgaki@dev PHP-master]$ php -r '$v = 10/3; var_dump(json_encode($v));' string(15) "3.3333333333333" [yohgaki@dev PHP-master]$ php -r '$v = 10/3; ini_set("precision", 17);var_dump(json_encode($v));' string(18) "3.3333333333333335" [yohgaki@dev PHP-master]$ php <?php var_dump(json_decode('{ "v" : 0.12345678901234567890 }')); ini_set('precision', 17); var_dump(json_decode('{ "v" : 0.12345678901234567890 }')); ?> object(stdClass)#1 (1) { ["v"]=> float(0.12345678901235) } object(stdClass)#1 (1) { ["v"]=> float(0.12345678901234568) } ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=70137&edit=1

« previous php.bugs (#203842) next »