Was ist der Unterschied zwischen Float und Double in PHP?

WBOY
Freigeben: 2023-03-15 11:42:01
Original
2538 Leute haben es durchsucht

In PHP gibt es keinen Unterschied zwischen Float und Double. Der Gleitkommatyp wird in PHP auch als Gleitkommazahl „Float“, „Double Precision Number Double“ oder „Real Number Real“ bezeichnet. Float, Double oder Real sind dieselben Datentypen und können mit derselben Syntax definiert werden.

Was ist der Unterschied zwischen Float und Double in PHP?

Die Betriebsumgebung dieses Tutorials: Windows 10-System, PHP-Version 7.1, DELL G3-Computer

Was ist der Unterschied zwischen Float und Double in PHP?

Um den Unterschied zwischen Float und Double in zu unterscheiden php verwende ich jeweils den folgenden Code.

$vad = 1.1;
print gettype($vad);
var_dump($vad);
Nach dem Login kopieren

Dies wird ausgegeben:

double
float(1.1)
Nach dem Login kopieren

Es sieht anders aus, aber tatsächlich gibt es in PHP keinen Unterschied. float, double oder real sind vom gleichen Datentyp. Float (auch Float, Double oder Real genannt. Auf der C-Ebene wird alles als Double gespeichert.

Die tatsächliche Größe ist immer noch plattformabhängig. Einzelheiten finden Sie im Handbuch:

http: //www.php.net/ manual/en/sprache.types.float.php

Präzision von Gleitkommazahlen

Gleitkommazahlen haben eine begrenzte Genauigkeit, obwohl PHP je nach System normalerweise das IEEE 754-Format mit doppelter Genauigkeit verwendet. Der maximale relative Fehler, der durch Rundung verursacht wird ist 1,11e-16. Nicht-grundlegende mathematische Operationen können zu größeren Fehlern führen, und die Fehlerfortpflanzung muss bei der Durchführung zusammengesetzter Operationen berücksichtigt werden.

Außerdem können rationale Zahlen wie 0,1 oder 0,7 genau dargestellt werden Egal wie viele Mantissen es gibt, sie werden durch die intern verwendete Binärdatei nicht genau dargestellt und können daher nicht in das Binärformat konvertiert werden, ohne etwas an Präzision zu verlieren. Dies führt zu verwirrenden Ergebnissen: zum Beispiel floor((0.1+ 0.7)*10 ) gibt normalerweise 7 anstelle der erwarteten 8 zurück, da die interne Darstellung des Ergebnisses tatsächlich etwa 7,9999999999999991118 ist ? ​​Wenn Sie wirklich eine höhere Präzision benötigen, sollten Sie mathematische Funktionen mit beliebiger Präzision oder GMP-Funktionen verwenden. Empfohlenes Lernen: „

PHP-Video-Tutorial“

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Float und Double in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage