PHP中microtime()函数的两种返回方式精度不同是为什么?
習慣沉默
習慣沉默 2017-05-24 11:33:37
0
1
614

环境:
CentOS 7.3.1611
PHP 7.1.3

代码:

<?php
var_dump(microtime());
var_dump(microtime(true));

输出:

string(21) "0.23337700 1495449772"
float(1495449772.2334)

疑问:
反复运行代码,都是这样的结果。
以字符串的方式,输出8位毫秒值这个还容易理解,反正最后两位总是0,以浮点数输出的时候,精度被控制在了四位,这是什么原因呢?

另外的验证:
执行php -r "echo ini_get('precision'), PHP_EOL;"输出结果为14,显然不是php中关于浮点精度的设置影响了microtime()的输出结果。而php.ini中也没有搜索到“microtime”关键字,看起来似乎不存在某些专门的设置影响了输出精度。

晕中,期待达人指点。

習慣沉默
習慣沉默

全部回复(1)
曾经蜡笔没有小新

ini_get('precision') 控制精度为 14 的意思是 :

float(1495449772.2334) 全部有 14 个数字,小数点前 10位,小数点后 4 位,并不是小数点后面 14 位的意思啊。

看看小面代码的结果吧。

ini_set('precision', 18);
var_dump(microtime());
var_dump(microtime(true));
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板