浮動小数点数を指定すると、jsonエンコーディングとそれに続くデコードの後、変数型float(またはdouble)は時々に保存されません。PHP jsonは浮動小数点数を整数に変換することがあります
$n1 = 1.23;
$json = json_encode($n1); // '1.23'
$n2 = json_decode($json);
$t1 = gettype($n1); // 'double'
$t2 = gettype($n2); // 'double'
$d = $n1 === $n2; // true
小数が「0」の結果が異なるされている場合しかし、:
$n1 = 1.0;
$json = json_encode($n1); // '1'
$n2 = json_decode($json);
$t1 = gettype($n1); // 'double'
$t2 = gettype($n2); // 'integer'
$d = $n1 === $n2; // false
Iしたがってハードに、JSONエンコード/デコード機能の動作は、データ値に基づいていると結論しなければなりません予測し、そして最終的には非常に矛盾しています。
jsonのエンコード/デコード処理中に変数のタイプを保持する方法はありますか?