具有以下代码。想要保留纬度的所有小数位,但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}
答案 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." ";