PHP中microtime()函数的两种返回方式精度不同是为什么?
本文介绍了PHP中microtime()函数的两种返回方式精度不同是为什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
环境:
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关键字,看起来似乎不存在某些专门的设置影响了输出精度。
晕中,期待达人指点。
解决方案
ini_get('precision')
控制精度为 14 的意思是 :
float(1495449772.2334) 全部有 14 个数字,小数点前 10位,小数点后 4 位,并不是小数点后面 14 位的意思啊。
看看小面代码的结果吧。
ini_set('precision', 18);
var_dump(microtime());
var_dump(microtime(true));
这篇关于PHP中microtime()函数的两种返回方式精度不同是为什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文