Php:用 json_encode() 以科学记数法编码的浮点数



使用 php7.1,这个:

json_encode(['value' => 0.00001]);

将返回此字符串:

{"值":1.0e-5}

虽然我想得到{"value":0.0001}

我怎样才能做到这一点?

这是我到目前为止尝试过的:

json_encode(['value' => '0.00001']);
// returns {"value":"0.0001"}, not {"value":0.0001}
json_encode(['value' => '0.00001'], JSON_NUMERIC_CHECK);
// returns {"value":1.0e-5}

PHP 源代码 Zend/zend_strtod.c 的第 4536 行选择 E 样式,如果你有超过 3 个零 ( decpt < -3 (:

if ((decpt >= 0 && decpt > ndigit) || decpt < -3) { /* use E-style */

最新更新