Heim > Artikel > Backend-Entwicklung > Wie PHP mit hochpräzisen Berechnungsfunktionen umgeht
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!