Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
458 views
in Technique[技术] by (71.8m points)

php json_decode float丢失小数点

var_dump(json_decode('{"price":5.00}', true));

结果:
array(1) {
["price"]=>
float(5)//但期望的是5.00,能保留小数点
}


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

不是json_decode的问题,是输出函数本身就这样,

var_dump(5.00);//输出float(5)
echo 5.00;//输出5
print 5.00;//输出5

json_encode通过设置可选项来保留小数点

echo json_encode([5.00], JSON_PRESERVE_ZERO_FRACTION);//输出[5.0],但这也不是期望的[5.00]

echo sprintf('%.2f', 5);//保留两位小数

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...