Exakte Division mit der Funktion fdiv() in PHP8

WBOY
Freigeben: 2023-05-16 19:22:01
Original
1224 Leute haben es durchsucht

Mit der kontinuierlichen Weiterentwicklung der Computertechnologie sind Zahlenoperationen zu einem der grundlegendsten und wichtigsten Inhalte in Computern geworden. Bei der Durchführung von Divisionsoperationen von Gleitkommazahlen können jedoch aufgrund der Genauigkeit der Computerspeicherung von Gleitkommazahlen große Fehler auftreten. Um dieses Problem zu lösen, wurde in PHP8 die Funktion fdiv() für präzise Divisionsoperationen hinzugefügt. Das Syntaxformat der Funktion

fdiv() lautet:

fdiv(float $dividend, float $divisor): float
Nach dem Login kopieren

wobei $dividend die Dividende darstellt, $divisor den Divisor darstellt und der Rückgabewert das Ergebnis der Divisionsoperation ist, also der genaue Wert von $dividend dividiert durch $divisor.

Als nächstes schauen wir uns einige konkrete Anwendungsbeispiele an.

  1. Regelmäßige Divisionsoperation

Bei der Durchführung von Divisionsoperationen verwenden wir normalerweise den Divisionsoperator „/“, um sie abzuschließen. Wenn wir beispielsweise das Ergebnis der Division von 10 durch 3 berechnen müssen, können wir den folgenden Code verwenden:

$result = 10 / 3;
echo $result; // 3.3333333333333
Nach dem Login kopieren

Wenn wir uns den Wert von $result ansehen, werden wir feststellen, dass das Ergebnis 3,3333333333333 ist. Dies ist auf Präzisionsprobleme zurückzuführen Computer speichern Gleitkommazahlen.

Wenn Sie die Funktion fdiv() verwenden, um denselben Vorgang auszuführen, lautet der Code wie folgt:

$result = fdiv(10, 3);
echo $result; // 3.3333333333333
Nach dem Login kopieren

Es ​​scheint, dass es keine Änderung gibt, aber tatsächlich führt die Funktion fdiv() einen präziseren Vorgang aus und sorgt so für mehr genaues Ergebnis.

  1. Umgang mit den Grenzfällen von Gleitkommazahlen

Bei der Division von Gleitkommazahlen stoßen Sie häufig auf einige Extremfälle, z. B. wenn der Divisor 0 ist, der Divisor extrem klein ist usw. In diesen Fällen können reguläre Divisionsoperationen zu Programmausnahmen oder fehlerhaften Ergebnissen führen.

Für den Fall, dass der Divisor 0 ist, wird in PHP eine DivideByZeroError-Ausnahme ausgelöst, sodass das Programm Ausnahmen behandeln muss. Zum Beispiel:

try {
    $result = fdiv(10, 0);
} catch (DivideByZeroError $e) {
    echo "Error: Cannot divide by 0";
}
Nach dem Login kopieren

In Fällen, in denen der Divisor sehr klein ist, kann es aufgrund der Genauigkeitsbeschränkung der im Computer gespeicherten Gleitkommazahlen zu ungenauen Ergebnissen kommen. In diesem Fall können Sie die Genauigkeit der Berechnung verbessern, indem Sie die Genauigkeit festlegen. Beispielsweise stellen wir das Berechnungsergebnis so ein, dass 20 Dezimalstellen erhalten bleiben:

ini_set('precision', 20);
$result = fdiv(10, 0.0000001);
echo $result; // 1.0E+8
Nach dem Login kopieren

Sie sehen, dass wir durch die Festlegung der Genauigkeit genauere Berechnungsergebnisse erhalten.

  1. Verarbeitung von Divisionsoperationen sehr großer Zahlen

Beim Umgang mit sehr großen Zahlen führt die Verwendung regulärer Divisionsoperationen oft zu sehr großen Fehlern. Zu diesem Zeitpunkt können Sie die präzise Berechnungsfunktion der Funktion fdiv() verwenden, um präzise Divisionsoperationen für extrem große Zahlen durchzuführen. Zum Beispiel müssen wir das Ergebnis der Division von 2 hoch 100 durch 3 berechnen:

$dividend = pow(2, 100);
$divisor = 3;
$result = fdiv($dividend, $divisor);
echo $result; // 6.3382530011411E+29
Nach dem Login kopieren

Mit der Funktion fdiv() erhalten wir ein genaueres Berechnungsergebnis.

Zusammenfassend lässt sich sagen, dass das Aufkommen der Funktion fdiv() es für uns einfacher und genauer macht, Gleitkommazahlen zu dividieren. Sie kann Fehler, die durch die Genauigkeit der Computerspeicherung von Gleitkommazahlen verursacht werden, effektiv vermeiden und die Genauigkeit verbessern und Stabilität des Programmbetriebs.

Das obige ist der detaillierte Inhalt vonExakte Division mit der Funktion fdiv() in PHP8. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!