Heim >Backend-Entwicklung >PHP-Problem >Was bedeutet PHP-Gleitkomma?

Was bedeutet PHP-Gleitkomma?

藏色散人
藏色散人Original
2022-01-19 09:25:137196Durchsuche

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.

Was bedeutet PHP-Gleitkomma?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn