Warum ist diese Mikrozeit in PHP seltsam?

8

Warum erscheint diese Mikrozeit in PHP seltsam?

%Vor%

Das obige zeigt:
Time4: 2.69412994385E-5

Etwas mit einem komplexeren, länger laufenden Prozess zeigt sich stattdessen so:
Zeit1: 0,000292062759399

    
JasonDavis 21.08.2009, 04:06
quelle

4 Antworten

15

E-5 ist eine wissenschaftliche Notation. Scheint zu passieren, wenn Sie es mit dem Zeichenfolgenwert verketten. Versuchen Sie es mit number_format ...?

%Vor%     
great_llama 21.08.2009, 04:14
quelle
15
___ qstnhdr ___ Warum ist diese Mikrozeit in PHP seltsam? ___ answer49055692 ___

Vergessen Sie nicht %code% :

%Vor%

update: an die oberste Antwort angehängt.

    
___ tag123php ___ PHP ist eine weit verbreitete, dynamische, objektorientierte und interpretierte Skriptsprache, die primär für die serverseitige Webentwicklung entwickelt wurde. ___ answer1310057 ___

E-5 ist eine wissenschaftliche Notation. Scheint zu passieren, wenn Sie es mit dem Zeichenfolgenwert verketten. Versuchen Sie es mit number_format ...?

%Vor%     
___ qstntxt ___

Warum erscheint diese Mikrozeit in PHP seltsam?

%Vor%

Das obige zeigt:
Time4: 2.69412994385E-5

Etwas mit einem komplexeren, länger laufenden Prozess zeigt sich stattdessen so:
Zeit1: 0,000292062759399

    
___ answer1310105 ___

Es scheint, dass diese %code% seltsam erscheint, weil PHP eine Schwelle hat, auf der entweder eine Zahl in wissenschaftlicher Notation oder eine in dezimaler Notation angezeigt wird. Beides sind technisch "floats" ( siehe Dokumentation ).

Es scheint, dass diese Schwelle zwischen 0,8 Sekunden und 0,9 Sekunden liegt; Das haben zumindest meine Tests ergeben. Mit dem folgenden Code wird die wissenschaftliche Notation angezeigt:

%Vor%

Wenn wir jedoch unsere Wartezeit auf %code% ändern, wird eine Dezimalzahl erzeugt. Dies kann auf allen Systemen oder Installationen der Fall sein oder auch nicht, aber zumindest haben meine Tests gezeigt.

Sie können dem selbst entgegenwirken, indem Sie die Funktion %code% wie folgt verwenden:

%Vor%

Dies zeigt immer die Zeit als eine Dezimalzahl.

    
___ antwort1310120 ___

Es ist normal, dass lange Zahlen (sehr klein oder sehr groß) in Zehnerpotenzen umgewandelt werden. Die E-5 bedeutet nur, dass die angezeigte Zahl mit (10/10/10/10/10) multipliziert wird es ist eine sehr kleine Zahl.

0.000000000000123 ist viel schwieriger zu lesen als 1.23E-13 (zum Beispiel).

Wenn Sie die Nummer jedoch in einem anderen Format anzeigen möchten:

%Vor%

Dies fügt der angezeigten Nummer 50 Dezimalstellen hinzu.

Ich hoffe, es hilft!

    
___
Frankie 21.08.2009 04:41
quelle
2

Es scheint, dass diese microtime() seltsam erscheint, weil PHP eine Schwelle hat, auf der entweder eine Zahl in wissenschaftlicher Notation oder eine in dezimaler Notation angezeigt wird. Beides sind technisch "floats" ( siehe Dokumentation ).

Es scheint, dass diese Schwelle zwischen 0,8 Sekunden und 0,9 Sekunden liegt; Das haben zumindest meine Tests ergeben. Mit dem folgenden Code wird die wissenschaftliche Notation angezeigt:

%Vor%

Wenn wir jedoch unsere Wartezeit auf sleep(0.9) ändern, wird eine Dezimalzahl erzeugt. Dies kann auf allen Systemen oder Installationen der Fall sein oder auch nicht, aber zumindest haben meine Tests gezeigt.

Sie können dem selbst entgegenwirken, indem Sie die Funktion sprintf() wie folgt verwenden:

%Vor%

Dies zeigt immer die Zeit als eine Dezimalzahl.

    
Josh Leitzel 21.08.2009 04:37
quelle
0

Vergessen Sie nicht float :

%Vor%

update: an die oberste Antwort angehängt.

    
T.Todua 01.03.2018 17:44
quelle

Tags und Links