Ce n'est pas une question que c'est plus un être conscient. J'ai mis à jour une application qui utilise json_encode()
de PHP7.1.1 et j'ai été voir un problème avec les chars d'être changé à parfois s'étendre 17 chiffres. Selon la documentation, PHP 7.1.x a commencé à utiliser des serialize_precision
au lieu de précision lors de l'encodage des valeurs doubles. Je devine que cela a causé un exemple de valeur de
472.185
pour devenir
472.18500000000006
après que la valeur est passé par json_encode()
. Depuis ma découverte, j'ai repris l'PHP 7.0.16 et je n'ai plus le problème avec json_encode()
. J'ai aussi essayé de mettre à jour vers PHP 7.1.2 avant de revenir à PHP 7.0.16.
Le raisonnement derrière cette question ne souches à partir de PHP - Nombre Flottant de Précision, cependant à la fin la raison pour cela est dû à la variation de la précision de serialize_precision d'utilisation en json_encode()
.
Si quelqu'un connais une solution à ce problème, je serais plus qu'heureux de les écouter sur l'raisonnement/fix.
Extrait de tableau multidimensionnel (avant):
[staticYaxisInfo] => Array
(
[17] => stdClass Object
(
[variable_id] => 17
[static] => 1
[min] => 0
[max] => 472.185
[locked_static] => 1
)
)
et après avoir traversé json_encode()
...
"staticYaxisInfo":
{
"17":
{
"variable_id": "17",
"static": "1",
"min": 0,
"max": 472.18500000000006,
"locked_static": "1"
}
},