Heim Backend-Entwicklung PHP-Tutorial Analyse von Problemen beim Vergleich von Gleitkommazahlen in der PHP-Entwicklung

Analyse von Problemen beim Vergleich von Gleitkommazahlen in der PHP-Entwicklung

Mar 09, 2024 am 08:12 AM
浮点数 比较 解析

Analyse von Problemen beim Vergleich von Gleitkommazahlen in der PHP-Entwicklung

In der PHP-Entwicklung war das Problem des Vergleichs von Gleitkommazahlen schon immer eine versteckte Gefahr, auf die Programmierer achten müssen. Im tatsächlichen Entwicklungsprozess stoßen wir häufig auf Situationen, in denen Gleitkommazahlen verglichen werden müssen. Aufgrund der internen Darstellung von Gleitkommazahlen kann ein direkter Vergleich jedoch zu unerwarteten Ergebnissen führen. Dieser Artikel beginnt mit dem internen Darstellungsmechanismus von Gleitkommazahlen, analysiert häufige Probleme beim Vergleich von Gleitkommazahlen und stellt Lösungen und spezifische Codebeispiele bereit.

1. Interne Darstellung von Gleitkommazahlen

In Computern werden Gleitkommazahlen mithilfe des IEEE 754-Standards dargestellt, der eine Reihe binärer Speichermethoden zur Darstellung von Dezimalzahlen verwendet. Da die Genauigkeit von Gleitkommazahlen jedoch begrenzt ist, kommt es häufig zu Präzisionsverlusten. Wenn wir beispielsweise PHP verwenden, um eine einfache Berechnung wie die folgende durchzuführen:

$a = 0.1 + 0.2;
echo $a;  // 输出0.3
Nach dem Login kopieren

Aufgrund der Genauigkeitsbeschränkungen von Gleitkommazahlen kann es jedoch sein, dass der vom Computer intern tatsächlich dargestellte Wert eher eine Näherung als genau 0,3 ist. Dies führt möglicherweise zu unerwarteten Ergebnissen beim Vergleich von Gleitkommazahlen.

2. Problem beim Vergleich von Gleitkommazahlen

Aufgrund der begrenzten Genauigkeit von Gleitkommazahlen kann die direkte Verwendung des Gleichheitszeichens zum Vergleich Probleme verursachen. Betrachten Sie beispielsweise den folgenden Beispielcode:

$a = 0.1 + 0.2;
$b = 0.3;

if ($a == $b) {
    echo "相等";
} else {
    echo "不相等";
}
Nach dem Login kopieren

Da in diesem Beispiel die tatsächlichen Werte von $a und $b möglicherweise leicht unterschiedliche Genauigkeiten haben, kann der Vergleich mit dem Gleichheitszeichen zu „ungleich“ führen, obwohl dies mathematisch gesehen der Fall ist sie sollten gleich sein. Hier kommt das Problem bei Gleitkommavergleichen ins Spiel.

3. Lösung

Um Gleitkomma-Vergleichsprobleme zu vermeiden, können wir zum Vergleich einen kleinen Bereich von Fehlerwerten verwenden, anstatt das Gleichheitszeichen direkt zu verwenden. Sie können beispielsweise einen sehr kleinen Fehlerwert definieren und dann basierend auf dem Bereich der Fehlerwerte vergleichen. Ändern Sie den obigen Beispielcode wie folgt:

$epsilon = 0.00001;  // 定义误差值

$a = 0.1 + 0.2;
$b = 0.3;

if (abs($a - $b) < $epsilon) {
    echo "相等";
} else {
    echo "不相等";
}
Nach dem Login kopieren

In diesem modifizierten Code definieren wir zunächst einen kleinen Fehlerwert $epsilon und verwenden dann die Absolutwertfunktion abs(), um die Differenz zwischen den Werten $a und $b zu berechnen, wenn der Ist die Differenz kleiner als der Fehlerwert $epsilon, gelten sie als gleich. Dadurch werden Vergleichsprobleme aufgrund der Gleitkommagenauigkeit vermieden.

4. Zusammenfassung

In der PHP-Entwicklung ist das Thema Gleitkommazahlenvergleich ein Bereich, der besondere Aufmerksamkeit erfordert. Um Vergleichsprobleme zu vermeiden, die durch die Genauigkeit von Gleitkommazahlen verursacht werden, können wir die Methode verwenden, einen Fehlerbereich für den Vergleich zu definieren. Auf diese Weise können Sie genauer bestimmen, ob zwei Gleitkommazahlen gleich sind. In der tatsächlichen Entwicklung müssen Programmierer sorgfältig mit Problemen beim Vergleich von Gleitkommazahlen umgehen, um die Korrektheit und Stabilität des Programms sicherzustellen.

Das obige ist der detaillierte Inhalt vonAnalyse von Problemen beim Vergleich von Gleitkommazahlen in der PHP-Entwicklung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie aktiviere ich die NFC-Funktion auf dem Xiaomi Mi 14 Pro? Wie aktiviere ich die NFC-Funktion auf dem Xiaomi Mi 14 Pro? Mar 19, 2024 pm 02:28 PM

Heutzutage werden Leistung und Funktionen von Mobiltelefonen immer leistungsfähiger. Nahezu alle Mobiltelefone sind mit komfortablen NFC-Funktionen ausgestattet, um Benutzern das mobile Bezahlen und die Identitätsauthentifizierung zu erleichtern. Einige Xiaomi 14Pro-Benutzer wissen jedoch möglicherweise nicht, wie sie die NFC-Funktion aktivieren können. Als nächstes möchte ich es Ihnen im Detail vorstellen. Wie aktiviere ich die NFC-Funktion auf dem Xiaomi 14Pro? Schritt 1: Öffnen Sie das Einstellungsmenü Ihres Telefons. Schritt 2: Suchen Sie die Option „Verbinden und teilen“ oder „Drahtlos und Netzwerke“ und klicken Sie darauf. Schritt 3: Suchen Sie im Menü „Verbindung & Freigabe“ oder „Drahtlos & Netzwerke“ nach „NFC & Zahlungen“ und klicken Sie darauf. Schritt 4: Suchen Sie nach „NFC Switch“ und klicken Sie darauf. Im Allgemeinen ist die Standardeinstellung deaktiviert. Schritt 5: Klicken Sie auf der NFC-Umschaltseite auf die Schaltfläche zum Einschalten.

Ausführliche Erklärung des Oracle-Fehlers 3114: So beheben Sie ihn schnell Ausführliche Erklärung des Oracle-Fehlers 3114: So beheben Sie ihn schnell Mar 08, 2024 pm 02:42 PM

Ausführliche Erklärung des Oracle-Fehlers 3114: Um ihn schnell zu beheben, sind spezifische Codebeispiele erforderlich. Bei der Entwicklung und Verwaltung von Oracle-Datenbanken stoßen wir häufig auf verschiedene Fehler, unter denen Fehler 3114 ein relativ häufiges Problem ist. Fehler 3114 weist normalerweise auf ein Problem mit der Datenbankverbindung hin, das durch einen Netzwerkfehler, einen Stopp des Datenbankdienstes oder falsche Einstellungen der Verbindungszeichenfolge verursacht werden kann. In diesem Artikel wird die Ursache des Fehlers 3114 ausführlich erläutert und wie dieses Problem schnell gelöst werden kann. Außerdem wird der spezifische Code angehängt

Mar 18, 2024 pm 03:00 PM

Das Gleiten des Bildschirms durch die Luft ist eine Funktion von Huawei, die in der Huawei mate60-Serie sehr gelobt wird. Diese Funktion nutzt den Lasersensor am Telefon und die 3D-Tiefenkamera der Frontkamera, um eine Reihe von Funktionen auszuführen, die nicht erforderlich sind Funktion zum Berühren des Bildschirms, z. B. das Wischen von TikTok aus der Luft, aber wie kann man mit dem Huawei Pocket 2 TikTok aus der Luft wischen? Wie mache ich mit Huawei Pocket2 Screenshots aus der Luft? 1. Öffnen Sie die Einstellungen des Huawei Pocket2 2. Wählen Sie dann [Barrierefreiheit]. 3. Klicken Sie, um [Smart Perception] zu öffnen. 4. Schalten Sie einfach die Schalter [Air Swipe Screen], [Air Screenshot] und [Air Press] ein. 5. Wenn Sie es verwenden, müssen Sie es 20–40 cm vom Bildschirm entfernt halten, Ihre Handfläche öffnen und warten, bis das Handflächensymbol auf dem Bildschirm erscheint.

CAD-Zeichnungen des iPhone 16 Pro werden angezeigt und eine zweite neue Schaltfläche hinzugefügt CAD-Zeichnungen des iPhone 16 Pro werden angezeigt und eine zweite neue Schaltfläche hinzugefügt Mar 09, 2024 pm 09:07 PM

Die CAD-Dateien des iPhone 16 Pro wurden veröffentlicht und das Design stimmt mit früheren Gerüchten überein. Letzten Herbst hat das iPhone 15 Pro eine Aktionstaste hinzugefügt, und in diesem Herbst plant Apple offenbar, kleinere Anpassungen an der Größe der Hardware vorzunehmen. Hinzufügen einer Aufnahmetaste Gerüchten zufolge könnte das iPhone 16 Pro eine zweite neue Taste hinzufügen, was nach dem letzten Jahr das zweite Jahr in Folge sein wird, in dem eine neue Taste hinzugefügt wird. Gerüchten zufolge wird die neue Aufnahmetaste auf der unteren rechten Seite des iPhone 16 Pro angebracht. Dieses Design soll die Kamerasteuerung komfortabler machen und auch die Verwendung der Aktionstaste für andere Funktionen ermöglichen. Dieser Knopf wird nicht länger nur ein gewöhnlicher Auslöser sein. Bezüglich der Kamera, vom aktuellen iP

So legen Sie den Zeilenabstand in WPS Word fest, um das Dokument übersichtlicher zu gestalten So legen Sie den Zeilenabstand in WPS Word fest, um das Dokument übersichtlicher zu gestalten Mar 20, 2024 pm 04:30 PM

WPS ist unsere häufig verwendete Office-Software. Bei der Bearbeitung langer Artikel sind die Schriftarten oft zu klein, um klar gesehen zu werden, daher werden die Schriftarten und das gesamte Dokument angepasst. Zum Beispiel: Durch Anpassen des Zeilenabstands wird das gesamte Dokument sehr klar. Ich schlage vor, dass alle Freunde diesen Arbeitsschritt lernen. Die spezifischen Arbeitsschritte sind wie folgt. Öffnen Sie die WPS-Textdatei, die Sie anpassen möchten, suchen Sie die Symbolleiste für die Absatzeinstellung im Menü [Start] und Sie sehen das kleine Symbol für die Einstellung des Zeilenabstands (im Bild als roter Kreis dargestellt). 2. Klicken Sie auf das kleine umgekehrte Dreieck in der unteren rechten Ecke der Zeilenabstandseinstellung. Der entsprechende Zeilenabstandswert wird angezeigt. Sie können den 1- bis 3-fachen Zeilenabstand auswählen (wie durch den Pfeil in der Abbildung dargestellt). 3. Oder klicken Sie mit der rechten Maustaste auf den Absatz und er wird angezeigt

PHP-Rundungsmethode für Gleitkommazahlen PHP-Rundungsmethode für Gleitkommazahlen Mar 21, 2024 am 09:21 AM

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)

TrendX Research Institute: Merlin Chain-Projektanalyse und ökologische Bestandsaufnahme TrendX Research Institute: Merlin Chain-Projektanalyse und ökologische Bestandsaufnahme Mar 24, 2024 am 09:01 AM

Laut Statistiken vom 2. März hat der Gesamt-TVL des Bitcoin-Zweitschichtnetzwerks MerlinChain 3 Milliarden US-Dollar erreicht. Darunter machten die ökologischen Bitcoin-Vermögenswerte 90,83 % aus, darunter BTC im Wert von 1,596 Milliarden US-Dollar und BRC-20-Vermögenswerte im Wert von 404 Millionen US-Dollar. Letzten Monat erreichte der Gesamt-TVL von MerlinChain innerhalb von 14 Tagen nach dem Start der Absteckaktivitäten 1,97 Milliarden US-Dollar und übertraf damit Blast, das im November letzten Jahres gestartet wurde und auch das jüngste und gleichermaßen auffälligste ist. Am 26. Februar überstieg der Gesamtwert der NFTs im MerlinChain-Ökosystem 420 Millionen US-Dollar und wurde damit neben Ethereum zum öffentlichen Kettenprojekt mit dem höchsten NFT-Marktwert. Projekteinführung MerlinChain ist eine OKX-Unterstützung

Analyse der Bedeutung und Verwendung von Midpoint in PHP Analyse der Bedeutung und Verwendung von Midpoint in PHP Mar 27, 2024 pm 08:57 PM

[Analyse der Bedeutung und Verwendung von Mittelpunkt in PHP] In PHP ist Mittelpunkt (.) ein häufig verwendeter Operator, der zum Verbinden zweier Zeichenfolgen oder Eigenschaften oder Methoden von Objekten verwendet wird. In diesem Artikel befassen wir uns eingehend mit der Bedeutung und Verwendung von Mittelpunkten in PHP und veranschaulichen sie anhand konkreter Codebeispiele. 1. String-Mittelpunkt-Operator verbinden Die häufigste Verwendung in PHP ist das Verbinden zweier Strings. Indem Sie . zwischen zwei Saiten platzieren, können Sie diese zu einer neuen Saite zusammenfügen. $string1=&qu

See all articles