解決方法:
修改php.ini里的serialize_precision的值為-1 即可;然后重啟下開發(fā)環(huán)境
serialize_precision = -1
事情起因:
在用laravel開發(fā)接口時么库,發(fā)現(xiàn)數(shù)據(jù)庫中的數(shù)據(jù)是3.9脯颜,但“return success($price);”時卻是返回“3.8999999999999999”驾诈;
$price = 3.9;
return success($price);//輸出3.8999999999999999
這個就出現(xiàn)了精度問題,但使用laravel自帶的dd方法后蒋川,發(fā)現(xiàn)
$price = 3.9;
dd($price);//輸出3.9
由此可以判斷是return 的時候,json_encode出的問題,于是以下代碼驗證
$price = 3.9;
echo json_encode($price);//輸出3.8999999999999999
于是搜索了很多半天跟啤,才找到了解決方法。我本地的serialize_precision值是17唉锌,需要改成 -1隅肥;然后重啟開發(fā)環(huán)境后,再次輸入以下代碼
$price = 3.9;
echo json_encode($price);//輸出3.9
感謝以下文章的作者分享他的內(nèi)容袄简,我的問題才得以解決腥放。