php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #75700 Incorrect number after json_encode
Submitted: 2017-12-17 18:30 UTC Modified: 2017-12-20 20:34 UTC
From: admin at twister-vl dot ru Assigned:
Status: Not a bug Package: JSON related
PHP Version: 7.2.0 OS: All
Private report: No CVE-ID: None
 [2017-12-17 18:30 UTC] admin at twister-vl dot ru
Description:
------------
Some numbers after json_encode may contain unexpected zeros.

Test script:
---------------
<?php
$a =  (1010*(0.00003*100))/100;

echo $a;
echo "\n";
echo json_encode($a);

Expected result:
----------------
0.0303
0.0303

Actual result:
--------------
0.0303
0.030300000000000004

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2017-12-20 20:28 UTC] nikic@php.net
-Package: json +Package: JSON related
 [2017-12-20 20:34 UTC] nikic@php.net
-Status: Open +Status: Not a bug
 [2017-12-20 20:34 UTC] nikic@php.net
The actual result is correct, please see https://3v4l.org/BfqFu.

If you'd like to receive the old result (though you should ask yourself why you want that) you can either
a) change the serialize_precision setting, understanding that you will no longer receive an accurate floating-point representation, or
b) explicitly round your floating point numbers to a lower level of precision.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sun Oct 13 23:01:26 2024 UTC