如何在PHP json编码中保留小数位?

时间:2019-04-04 04:55:27

标签: php json

具有以下代码。想要保留纬度的所有小数位,但json_encode截断最后两位数字。执行json_encode时如何保留所有小数位。我希望将这些值作为json输出中的数字,而不希望作为引号中包含的字符串。

print_r(array('lat' => '-33.661853351608244' ));
echo json_encode( array('lat' => '-33.661853351608244' ),JSON_NUMERIC_CHECK);

输出:

Array
(
    [lat] => -33.661853351608244
)
{"lat":-33.661853351608}

2 个答案:

答案 0 :(得分:0)

您可以将精度设置为所需的小数位

ini_set( 'precision', 17 );
$arr = array(
  'lat' =>  "-33.661853351608244"
);

echo json_encode($arr,JSON_NUMERIC_CHECK);

输出:-

{"lat":-33.661853351608244}

答案 1 :(得分:0)

我遇到了JSON_NUMERIC_CHECK与电话号码以零开头的不一致问题。我通过封装两个空白链之间的电话号码来解决了这个问题:

$pre_tel = "0606060606";
$tel = " ".$pre_tel." ";