Pourquoi les deux méthodes de retour de la fonction microtime() en PHP sont-elles différentes en précision ?
習慣沉默
習慣沉默 2017-05-24 11:33:37
0
1
616

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.

習慣沉默
習慣沉默

répondre à tous(1)
曾经蜡笔没有小新

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.

ini_set('precision', 18);
var_dump(microtime());
var_dump(microtime(true));
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal