Warum unterscheiden sich die beiden Rückgabemethoden der Funktion microtime() in PHP in der Genauigkeit?
習慣沉默
習慣沉默 2017-05-24 11:33:37
0
1
608

Umgebung:
CentOS 7.3.1611
PHP 7.1.3

Code:

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

Ausgabe:

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

Frage:
Führen Sie den Code wiederholt aus und erhalten Sie das gleiche Ergebnis.
Es ist leicht zu verstehen, einen 8-stelligen Millisekundenwert in Form einer Zeichenfolge auszugeben. Die letzten beiden Ziffern sind jedoch immer 0. Bei der Ausgabe als Gleitkommazahl wird die Genauigkeit auf vier Ziffern gesteuert Grund?

Eine weitere Überprüfung:
Ausführungphp -r "echo ini_get('precision'), PHP_EOL;"输出结果为14, es ist offensichtlich nicht die Einstellung der Gleitkommagenauigkeit in PHP, die die Ausgabe von microtime() beeinflusst. Das Schlüsselwort „microtime“ wurde in php.ini nicht gefunden. Es scheint, dass es keine speziellen Einstellungen gibt, die die Ausgabegenauigkeit beeinflussen.

Ich bin verwirrt und freue mich auf den Rat des Experten.

習慣沉默
習慣沉默

Antworte allen(1)
曾经蜡笔没有小新

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

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

看看小面代码的结果吧。

ini_set('precision', 18);
var_dump(microtime());
var_dump(microtime(true));
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage