JSON_decode()行为怪异,添加字母和重命名字符

时间:2015-09-20 10:30:35

标签: json

我有一个包含$code的对象[{"id":863183023486434}]。执行解码$code = json_decode($code);后,解码后的$code会返回8.6318302348643E+14。怎么可能?

2 个答案:

答案 0 :(得分:1)

对于8.6318302348643E+14

863183023486434只是scientific notation。 (好吧,差不多;它有点被截断,可能是因为IEEE-754双精度浮点精度问题。)由于你如何输出价值,并不是价值本身不同。

要输出没有科学记数法的数字this answer says you use sprintf(我不是PHP人)。

答案 1 :(得分:1)

  

PHP代码:

<?php 
    $a = '[{"id":863183023486434}]';
    $code = json_decode($a, true, 512, JSON_BIGINT_AS_STRING);
    echo '<pre>';print_r($code);exit();
?>
  

输出:

enter image description here