Heim  >  Artikel  >  Backend-Entwicklung  >  Wie PHP mit hochpräzisen Berechnungsfunktionen umgeht

Wie PHP mit hochpräzisen Berechnungsfunktionen umgeht

小云云
小云云Original
2018-03-17 10:21:282019Durchsuche

In diesem Artikel erfahren Sie hauptsächlich, wie PHP mit hochpräzisen Berechnungsfunktionen umgeht. Ich hoffe, dass er Ihnen helfen kann.

Methode 1:

PHP bietet einen Binärrechner (Binärrechner) für mathematische Berechnungen mit beliebiger Präzision, der Zahlen beliebiger Größe und Genauigkeit unterstützt, die in Stringform beschrieben werden

bcadd – Addition
bccomp – Vergleich
bcp – Division
bcmod – finde den Rest
bcmul – Multiplikation
bcpow – Potenz
bcpowmod – erhöhe zuerst die Potenz und finde dann den Rest
bcscale – Dezimalstellengenauigkeit für alle Funktionen festlegen
bcsqrt – Quadratwurzeln finden
bcsub – Subtraktion

Methode 2:

Ich bin kürzlich auf ein seltsames Problem gestoßen, das Einkaufszentrum hat durchgezahlt WeChat-Bestellungen kosten oft einen Cent weniger. Dies liegt an der Genauigkeit von PHP-Gleitkommaoperationen.

Es liegt an der Genauigkeit von PHP-Gleitkommaoperationen. Bolg hat detaillierte Erklärungen. http://www.laruence.com/2013/03/26/2884.html,
Wenn Dezimalzahlen binär dargestellt werden, ist 0,58 ein unendlich langer Wert für binär

Die binäre Darstellung von 0,58 ist im Grunde (52 Bits): 0010100011110101110000101000111101011100001010001111

Die binäre Darstellung von 0,57 ist im Grunde (52 Bits): 0010001111010111000010100011110 10 1110000101000111101

In Gleitkommazahl konvertieren (64-Bit-Doppelgenauigkeit)

0,58 - > 0,5799999999999996

0,57 -> 0,56999999999999995

0,58*100 = 57,999999999 (int)(0,58*100) = 57

Lösung:

(int)((0.58*1000)/10) = 58

Verwandte Empfehlungen:

Beispiele für allgemeine MySQL-Datums- und Berechnungsfunktionen erklärt

PHP-Wahrscheinlichkeitsberechnungsfunktion

So berechnen Sie die Funktionsausführungszeit im php_PHP-Tutorial

Das obige ist der detaillierte Inhalt vonWie PHP mit hochpräzisen Berechnungsfunktionen umgeht. 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