警告:json_encode()中的大量错误

T4N*_*K3R 5 php ajax json

<?php  
$int = 1968401665333658496;  
echo json_encode( array("$int",$int) );  
?>  
Run Code Online (Sandbox Code Playgroud)

在浏览器中收到: [ "1968401665333658496" , 1968401665333658600 ]

它"舍入"我的整数?

顺便说一下:PHP_INT_MAX = 9223372036854775807 ~ PHP Version 5.3.2-1ubuntu4.7
这些巨大的整数在任何地方都没有问题(PHP,MySQL或Javascript)
- 直到json_encode(它搞砸了(默默地顺便说一句......)

tob*_*ies 2

Javascript 没有整数的概念,根据标准,所有数字都是 IEEE 双精度数,这意味着它们有 52 位尾数。这导致2^53在任何精度损失之前实际最大“整数”值。

我不确定你如何在 JS 中没有遇到这么大的数字问题 - 如果你没有,你的 JS 实现就不符合标准。