PHP中microtime()函数的两种返回方式精度不同是为什么?

查看:123
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆