Environnement :
CentOS 7.3.1611
PHP 7.1.3
Code :
<?php
var_dump(microtime());
var_dump(microtime(true));
Sortie :
string(21) "0.23337700 1495449772"
float(1495449772.2334)
Question :
Exécutez le code à plusieurs reprises et obtenez le même résultat.
Il est facile de comprendre la sortie d'une valeur milliseconde à 8 chiffres sous la forme d'une chaîne. Quoi qu'il en soit, les deux derniers chiffres sont toujours 0. Lors de la sortie sous forme de nombre à virgule flottante, la précision est contrôlée à quatre chiffres. raison?
Vérification supplémentaire :
Exécutionphp -r "echo ini_get('precision'), PHP_EOL;"
输出结果为14
, ce n'est évidemment pas le réglage de la précision en virgule flottante en PHP qui affecte la sortie de microtime(). Le mot-clé "microtime" n'est pas trouvé dans le php.ini. Il semble qu'il n'y ait aucun paramètre spécial affectant la précision de la sortie.
Je suis confus et j'attends avec impatience l'avis de l'expert.
ini_get('precision')
Une précision de contrôle de 14 signifie :float(1495449772.2334) a 14 chiffres au total, 10 chiffres avant la virgule décimale et 4 chiffres après la virgule décimale. Cela ne signifie pas 14 chiffres après la virgule décimale.
Jetons un coup d'œil aux résultats du code à facettes.