PHP:json_encode()函数

时间:2017-07-14 15:25:42

标签: php json floating-point precision encode

There was我的问题(最初不太准确):

我需要在JSON字符串中使用PHP浮点数。代码:

$obj['val'] = '6.40';
json_encode($obj);

转换为:

{"val": "6.40"}

没关系 - 我有字符串值' 6.40'在PHP和我有字符串值" 6.40"在JSON。

如果我需要使用花车,情况就不那么好了:

$obj['val'] = 6.40;
json_encode($obj);

转换为:

{"val": 6.4000000000000004}

但我需要:

{"val": 6.40}

如何在' json_encode'中将PHP浮点数转换为JSON数字?具有给定的精度?

1 个答案:

答案 0 :(得分:0)

......这是我自己的答案:

<?php
$obj['val'] = 6.40;
$out = json_encode($obj);
echo $out;  // {"val":6.4}

ini_set('precision', 17);
$obj['val'] = 6.40;
$out = json_encode($obj);
echo $out;  // {"val":6.4000000000000004}

ini_set('precision', 2);
$obj['val'] = 6.40;
$out = json_encode($obj);
echo $out;  // {"val":6.4}

这是@axiac的样本:

ini_set('precision', 4);
$obj['val'] = 1/3;
$out = json_encode($obj);
echo $out;  // {"val":0.3333}