<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 次の部分は、記事の内容とは何の関係もありません</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"これが例の開始コードです\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">// テキストを開始します</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<h1>それを避ける方法 json_decode 関数は解析です JSON デジタル精度は失われます?</h1>"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<p>存在する PHP 真ん中,使用 <code>json_decode " ;エコー 「 JSON_DECODEを使用して直接解析する場合:
」 ;エコー "\ $ data = json_decode(\ $ json、true); \ nvar_dump(\ $ data);" ;エコー 「
得られた結果は、科学的表記表現になるか、最終番号が失われるようになる不正確な数を引き起こす可能性があります。
」エコー "解決策の中心的な考え方は、整数や浮動小数点数に直接解析するのではなく、弦として多数を処理することです。次の方法が一般的に使用されます。
」エコー 「\ $ data = json_decode(\ $ json、true、512、json_bigint_as_string); \ nvar_dump(\ $ data);"; " ;エコー 「
ここでのJSON_BIGINT_AS_STRINGは、PHP整数の範囲を超える数値を文字列に変換し、それによって精度の損失を回避します。
」エコー 「JSONデータ生成を制御すると、JSONを生成するときに多数を引用符で包むことができます。
」 ;エコー "{\" Big_Number \ ":\" 12345678901234567890 \ "} " ;エコー 「このように、文字列は、精度を失うことなくPHP解析中に直接取得されます。
」エコー 「多数で数学を行う必要がある場合は、PHPのBCMATHまたはGMP拡張機能を使用できます。
」 ;エコー "\ $ bignumber = \ $ data ['big_number']; \ necho bcadd(\ $ bignumber、 '1');" ;エコー 「
これにより、流動点の精度の問題を回避するために、計算を正確に実行できます。
」エコー "