Предупреждение: массовая ошибка в json_encode ()

<?php $int = 1968401665333658496; echo json_encode( array("$int",$int) ); ?> 

Получено в браузере: [ "1968401665333658496" , 1968401665333658600 ]

Это «округляет» мое целое число?

PHP_INT_MAX = 9223372036854775807 ~ PHP Version 5.3.2-1ubuntu4.7 : PHP_INT_MAX = 9223372036854775807 ~ PHP Version 5.3.2-1ubuntu4.7
Нет проблем с этими огромными целыми числами в любом месте (PHP, MySQL или Javascript)
– до тех пор, пока json_encode( ) не заткнет его (бесшумно btw ..)

Solutions Collecting From Web of "Предупреждение: массовая ошибка в json_encode ()"

Javascript не имеет понятия целых чисел, в соответствии со стандартом все числа являются двойными значениями IEEE, что означает, что у них есть 52 бит мантиссы. это приводит к практическому максимальному «целочисленному» значению 2^53 до потери точности.

Я не уверен, как у вас не было проблем с числами, которые были большими в JS, – если вы не выполнили свою JS-реализацию, это не соответствует стандартам.

Это не просто проблема JSON. Если вы положите

 alert(1968401665333658496); 

в консоли firebug вы получите 1968401665333658600

Вероятно, вы попадаете в значение JS max.

Здесь обсуждается следующее: Что такое высочайшее целочисленное значение JavaScript, с которым число может идти без потери точности?

Отправьте свое целочисленное значение и обработайте конверсию на клиенте.