Heim >Backend-Entwicklung >PHP-Problem >Was bedeutet PHP-Gleitkomma?
PHP-Gleitkomma bezieht sich auf den Float-Gleitkommatyp, auch Gleitkommazahl-Float, doppelte Präzisionszahl oder reelle Zahl genannt. Seine Definitionssyntax lautet wie folgt: „$a = 1,234; $b = 1,2e3;“; Wortlänge der Gleitkommazahl Plattformabhängig, obwohl der Maximalwert normalerweise 1,8e308 mit einer Genauigkeit von 14 Dezimalstellen beträgt.
Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer
Was bedeutet PHP-Gleitkomma?
Float Gleitkommatyp
Der Gleitkommatyp (auch Gleitkommazahl Float, Double Precision Number Double oder Real Number Real genannt) kann mit einer der folgenden Syntaxen definiert werden:
<?php $a = 1.234; $b = 1.2e3; $c = 7E-10; $d = 1_234.567; // 从 PHP 7.4.0 开始支持 ?>
Dargestellt in der Form Floating Punktzahl (PHP 7.4.0-Unterstriche wurden zuvor nicht unterstützt):
LNUM [0-9]+(_[0-9]+)* DNUM ([0-9]*(_[0-9]+)*[\.]{LNUM}) | ({LNUM}[\.][0-9]*(_[0-9]+)*) EXPONENT_DNUM (({LNUM} | {DNUM}) [eE][+-]? {LNUM})
Die Wortlänge von Gleitkommazahlen ist plattformabhängig, obwohl der Maximalwert normalerweise 1,8e308 mit einer Genauigkeit von 14 Dezimalstellen (64-Bit-IEEE-Format) beträgt ).
Präzision von Gleitkommazahlen
Gleitkommazahlen haben eine begrenzte Genauigkeit. Obwohl es vom System abhängt, verwendet PHP normalerweise das IEEE 754-Doppelformat, sodass der maximale relative Fehler aufgrund der Rundung 1,11e-16 beträgt. Nicht grundlegende mathematische Operationen können zu größeren Fehlern führen, und die Fehlerfortpflanzung bei der Durchführung zusammengesetzter Operationen muss berücksichtigt werden.
Darüber hinaus können rationale Zahlen wie 0,1 oder 0,7, die genau im Dezimalformat dargestellt werden können, unabhängig von der Anzahl der Mantissen, durch die intern verwendete Binärzahl nicht genau dargestellt werden und können daher nicht ohne Verlust in das Binärformat konvertiert werden ein bisschen Präzision. Dies kann zu verwirrenden Ergebnissen führen: Beispielsweise gibt floor((0.1+0.7)*10) normalerweise 7 statt der erwarteten 8 zurück, da die interne Darstellung des Ergebnisses tatsächlich etwa 7.9999999999999991118... ist.
Glauben Sie also niemals, dass das Ergebnis der Gleitkommazahl bis zur letzten Ziffer genau ist, und vergleichen Sie niemals, ob zwei Gleitkommazahlen gleich sind. Wenn Sie wirklich eine höhere Präzision benötigen, sollten Sie mathematische Funktionen mit beliebiger Präzision oder die GMP-Funktion verwenden.
Empfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas bedeutet PHP-Gleitkomma?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!