最好的处理源头 直接float转成字符串
//默认尾数后不剩余0,而且json_decode后仍然显示的是float类型
var_dump(json_decode('{"price":5.00}', true));
echo "\n"; for($i=0;$i<50;$i++){ echo '-';} echo "\n";
//结果正确
var_dump(json_decode('{"price":5.01}', true));
echo "\n"; for($i=0;$i<50;$i++){ echo '-';} echo "\n";
//设置参数,decode无效
var_dump(json_decode('{"price":5.00}', JSON_PRESERVE_ZERO_FRACTION));
echo "\n"; for($i=0;$i<50;$i++){ echo '-';} echo "\n";
//小数点保留位数转换
$data = json_decode('{"price":5.00}', true);
echo sprintf("%.2f", $data['price']);
结果
array(1) {
["price"]=>
float(5)
}
--------------------------------------------------
array(1) {
["price"]=>
float(5.01)
}
--------------------------------------------------
array(1) {
["price"]=>
float(5)
}
--------------------------------------------------
5.00