


Lösungen für ungenaue Gleitkommaberechnungen, Vergleiche und Rundungen in PHP_php-Grundlagen
Vergleich der Ergebnisse der Gleitkommaberechnung
Ein Beispiel für eine Gleitkommaberechnung ist wie folgt:
$a = 0,2+0,7;
$b = 0,9;
var_dump($a == $b);
Das gedruckte Ergebnis ist: bool(false). Mit anderen Worten, das Berechnungsergebnis von 0,2 + 0,7 entspricht hier nicht 0,9, was offensichtlich unserem gesunden Menschenverstand widerspricht.
Zu diesem Problem heißt es im offiziellen PHP-Handbuch einmal: Anscheinend kann ein einfacher Dezimalbruch wie 0,2 nicht in ein internes Binärformat konvertiert werden, ohne ein wenig an Präzision zu verlieren. Dies hat damit zu tun, dass es unmöglich ist, bestimmte Dezimalbrüche exakt mit einer endlichen Anzahl von Stellen auszudrücken. Beispielsweise wird 1/3 in Dezimalzahl zu 0,3333333….
Wir drucken die oben genannten Variablen im Format mit doppelter Genauigkeit aus:
$a = 0,2+0,7;
$b = 0,9;
printf("%0.20f", $a);
echo '
';
printf("%0.20f", $b);
Die Ausgabeergebnisse lauten wie folgt:
0,89999999999999991118
0,90000000000000002220
Da es sich um Gleitkommadaten handelt, ist hier offensichtlich ein Teil ihrer Genauigkeit verloren gegangen und sie können nicht vollständig genau sein. Vertrauen Sie also niemals darauf, dass das Ergebnis einer Gleitkommazahl bis zur letzten Ziffer genau ist, und vergleichen Sie niemals zwei Gleitkommazahlen auf Gleichheit. Es ist zu beachten, dass dies kein Problem mit PHP ist, sondern ein Problem mit der computerinternen Verarbeitung von Gleitkommazahlen! Das gleiche Problem tritt in Sprachen wie C und JAVA auf.
Um also zwei Gleitkommazahlen zu vergleichen, müssen wir sie vor dem Vergleich innerhalb des Genauigkeitsbereichs kontrollieren, den wir benötigen. Verwenden Sie daher die Funktion bcadd(), um die Gleitkommazahlen zu addieren und die Genauigkeit (in eine Zeichenfolge) umzuwandeln:
var_dump(bcadd(0.2,0.7,1) == 0.9); // Ausgabe: bool(true)
Rundung von Gleitkommazahlen
Im Artikel „PHP-Rundungsfunktionen Decke und Boden“ gibt es ein Beispiel:
echo ceil(2.1/0.7); // Ausgabe: 4
?>
Nach der obigen Diskussion über die Berechnung von Gleitkommazahlen wissen wir, dass dies an den ungenauen Ergebnissen der Berechnung von Gleitkommazahlen liegt:
printf("%0.20f", (2.1/0.7)); // Ausgabe: 3.0000000000000044409
?>
Nach der obigen Diskussion zur Berechnung von Gleitkommazahlen wissen wir, dass dies durch das ungenaue Ergebnis der Berechnung von Gleitkommazahlen verursacht wird, sodass wir die Funktion „round()“ verwenden können, um damit umzugehen:
echo ceil( rund((2.1/0.7),1) );
?>
Obwohl die Funktion „round()“ entsprechend der angegebenen Genauigkeit rundet, hat die Beibehaltung einer Dezimalstelle keinen Einfluss auf unser Rundungsergebnis.

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

PHP ist eine leistungsstarke Programmiersprache, die in der Welt der Webentwicklung weit verbreitet ist. Eine der sehr häufigen Situationen ist die Notwendigkeit, eine Zeichenfolge in eine Dezimalzahl umzuwandeln. Dies ist bei der Datenverarbeitung sehr nützlich. In diesem Artikel erklären wir, wie man in PHP einen String in einen Dezimalwert umwandelt.

In diesem Artikel wird die Rundungsmethode für PHP-Gleitkommazahlen ausführlich erläutert. Der Herausgeber hält sie für sehr praktisch, daher hoffe ich, dass Sie nach dem Lesen dieses Artikels etwas gewinnen können. PHP-Gleitkomma-Rundung – Übersicht Gleitkommazahlen werden in Computern als Dezimalpunkt gefolgt von einem Exponenten dargestellt, sie werden jedoch oft in Näherungen mit einer begrenzten Anzahl von Ziffern gespeichert. Wenn Sie eine Gleitkommazahl auf eine bestimmte Genauigkeit runden müssen, gibt es mehrere Möglichkeiten, dies zu tun. Methode 1. Funktion „round()“ Die Funktion „round()“ rundet eine Gleitkommazahl auf die nächste Ganzzahl. Es akzeptiert Gleitkommazahlen und optionale Präzisionsparameter. Zum Beispiel: $num=1.55;echoround($num);//Ausgabe: 2echoround($num,1)

Mit der Entwicklung der Computerprogrammierung können wir auf Szenarien stoßen, in denen wir in unserer täglichen Programmierarbeit Divisionsoperationen und Rundungen durchführen müssen. Bei der PHP-Programmierung können wir verschiedene Methoden nutzen, um diesen Zweck zu erreichen.

Verwenden Sie die Funktion strconv.FormatFloat, um Gleitkommazahlen in Zeichenfolgen umzuwandeln. In der Go-Sprache müssen wir häufig Gleitkommazahlen für Ausgabe- oder Speicherzwecke in Zeichenfolgentypen konvertieren. Das strconv-Paket wird in der Go-Sprache bereitgestellt und die darin enthaltene FormatFloat-Funktion kann Gleitkommazahlen in String-Typen konvertieren. Die FormatFloat-Funktion benötigt drei Parameter: f stellt die zu konvertierende Gleitkommazahl dar, fmt stellt das Format dar und prec stellt die Anzahl der beizubehaltenden Dezimalstellen dar. Darunter der f-Parameter

Als beliebte serverseitige Skriptsprache treten bei PHP häufig Probleme mit Präzisionsverlusten oder Berechnungsfehlern bei der Durchführung von Gleitkommaberechnungen auf. Diese Probleme können die Genauigkeit und Stabilität des Programms beeinträchtigen. In diesem Artikel werden die Ursachen von PHP-Gleitkommaberechnungsfehlern untersucht, einige Vermeidungsstrategien vorgeschlagen und spezifische Codebeispiele als Referenz angegeben. 1. Gründe für PHP-Gleitkommaberechnungsfehler In Computern werden Gleitkommazahlen in binärer Form dargestellt, und Binärzahlen können nicht alle Dezimalzahlen genau darstellen, was zur Ungenauigkeit von Gleitkommazahlen führt.

:1. Einführung in BCMath BCMath ist eine in PHP integrierte Erweiterungsbibliothek, die speziell für die Verarbeitung großer Ganzzahl- und Gleitkommazahlenoperationen verwendet wird. Es bietet eine Fülle von Funktionen zur Durchführung verschiedener mathematischer Operationen wie Addition, Subtraktion, Multiplikation, Division, Quadrat und Quadratwurzel und unterstützt die digitale Darstellung in mehreren Basen. 2. Vorteile von BCMath Im Vergleich zu den von PHP nativ bereitgestellten arithmetischen Operatoren und Funktionen bietet BCMath vor allem die folgenden Vorteile: Höhere Präzision: Die Operationsergebnisse von BCMath können signifikantere Ziffern behalten, was besonders für Berechnungen mit großen Zahlen nützlich ist. Größerer Bereich: BCMath kann größere Zahlen als die nativen Datentypen von PHP verarbeiten und vermeidet so Überlauf- oder Präzisionsprobleme. Umfangreichere Funktionen: BCMath bietet

Das Konvertieren einer Zeichenfolge in eine Gleitkommazahl ist eine häufige Operation in PHP und kann über integrierte Methoden durchgeführt werden. Stellen Sie zunächst sicher, dass die Zeichenfolge in einem zulässigen Gleitkommaformat vorliegt, bevor sie erfolgreich in eine Gleitkommazahl konvertiert werden kann. Im Folgenden wird detailliert beschrieben, wie eine Zeichenfolge in PHP in eine Gleitkommazahl konvertiert wird, und es werden spezifische Codebeispiele bereitgestellt. 1. (Float-)Cast verwenden In PHP ist die Verwendung von Cast der einfachste Weg, einen String in eine Gleitkommazahl umzuwandeln. Die Möglichkeit, die Konvertierung zu erzwingen, besteht darin, (float) vor der Zeichenfolge hinzuzufügen, und PHP konvertiert sie automatisch

Für die Verwendung der Math.Truncate-Funktion in C# zum Abrunden von Gleitkommazahlen sind bestimmte Codebeispiele erforderlich. Bei der C#-Programmierung treten häufig Situationen auf, in denen Gleitkommazahlen abgerundet werden müssen. Unter diesen ist das Abrunden eine gängige Operation und kann mit der Math.Truncate-Funktion in C# implementiert werden. In diesem Artikel wird die Verwendung der Math.Truncate-Funktion ausführlich vorgestellt und spezifische Codebeispiele bereitgestellt. Die Math.Truncate-Funktion ist eine mathematische Funktion in C#, die zum Konvertieren einer Gleitkommazahl verwendet wird
