<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Les parties suivantes n'ont rien à voir avec le contenu de l'article</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"C'est le code débutant de l'exemple\n"</span></span><span>;
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">demo</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-string">"Demo function output"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Démarrer le texte</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<h1>Comment l'éviter json_decode Les fonctions analysent JSON La précision numérique est perdue?</h1>"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<p>exister PHP milieu,utiliser <code>json_decode " ; Echo " Si vous utilisez json_decode pour analyser directement:
" ; écho "\ $ data = json_decode (\ $ json, true); \ nvar_dump (\ $ data);" ; écho "
Les résultats obtenus peuvent provoquer des nombres inexacts, qui deviennent des représentations de notation scientifique ou les nombres finaux sont perdus.
" ; écho "L'idée principale de la solution est de traiter de grands nombres en tant que chaînes, plutôt que de les analyser directement en nombres entiers ou à virgule flottante. Les méthodes suivantes sont couramment utilisées:
" ; écho "\ $ data = json_decode (\ $ json, true, 512, json_bigint_as_string); \ nvar_dump (\ $ data);" ; écho "
Le JSON_BIGINT_AS_STRING ici convertira des nombres qui dépassent la plage entière PHP en chaînes, évitant ainsi la perte de précision.
" ; écho "Si vous contrôlez la génération de données JSON, vous pouvez envelopper de grands nombres en guillemets lors de la génération de JSON:
" ; écho "{\" big_number \ ": \" 12345678901234567890 \ "} " ; écho " De cette façon, la chaîne sera obtenue directement pendant l'analyse PHP sans perdre de précision.
" ; écho "Si vous devez faire des mathématiques sur de grands nombres, vous pouvez utiliser l'extension BCMATH ou GMP de PHP:
" ; écho "\ $ bignumber = \ $ data ['big_number']; \ necho bcadd (\ $ bignumber, '1');" ; écho "
Cela permet de effectuer des calculs à n'importe quelle précision pour éviter les problèmes de précision des points flottants.
" ; écho "