Bei der Durchführung präziser mathematischer Operationen in PHP führen konventionelle Gleitkomma-Berechnungen häufig zu Genauigkeitsverlust. Insbesondere im Umgang mit Bereichen wie Währung und Gewinn sind die Genauigkeitsprobleme besonders wichtig. PHP bietet eine sehr leistungsstarke Bibliothek für mathematische Erweiterung - BCMath (große Zahlen), die speziell zur Lösung großer Zahlen und Berechnungsprobleme mit hoher Präzision verwendet wird. BCSUB und BCMUL sind zwei Funktionen in der BCMATH -Bibliothek, die zusammen verwendet werden können, um eine hohe Genauigkeit bei der Berechnung der Gewinne zu gewährleisten.
BCMUL (String $ links_operand, String $ Right_operand, int $ scale = 0) : Wird verwendet, um die Multiplikation von zwei Zahlen zu berechnen und die Anzahl der Dezimalstellen anzugeben, um das Ergebnis zurückzugeben. $ Left_operand und $ right_operand sind zwei Operanden, um Multiplikationsvorgänge durchzuführen. $ scale wird verwendet, um die Genauigkeit nach dem Dezimalpunkt zu steuern, und der Standard ist 0.
BCSUB (String $ links_operand, String $ right_operand, int $ scale = 0) : Wird verwendet, um die Subtraktion von zwei Zahlen zu berechnen, und kann die Anzahl der Dezimalstellen angeben, die das Ergebnis zurückgeben. $ Left_operand ist das Subtrahierte, $ Right_operand ist der Subtrahierte und $ scale wird auch verwendet, um die Anzahl der Dezimalstellen anzugeben, Standards beträgt 0.
Im Prozess der Gewinnberechnung müssen wir häufig Vorgänge wie Addition, Subtraktion und Multiplikation durchführen. Angenommen, wir müssen den Umsatz zuerst berechnen, wenn wir den Gewinn berechnen, dann die Kosten vom Umsatz abziehen und schließlich den Gewinn erzielen.
Wenn ein Unternehmen beispielsweise ein Produkt verkauft, beträgt der Preis 100 Yuan, die Produktionskosten 60 Yuan und die Steuern 10% des Umsatzes. Anschließend können die Schritte zur Berechnung der Gewinne wie folgt zerlegt werden:
Umsatzsteuern berechnen : Steuern sind 10% des Umsatzes, wir verwenden BCMUL , um Steuern zu berechnen.
Gewinn berechnen : Der Gewinn ist Umsatz abzüglich Produktionskosten und Steuern, d. H. Gewinn = Umsatz - Kosten - Steuern. Hier verwenden wir BCSUB , um zuerst die Kosten und dann die Steuern zu subtrahieren, um die Genauigkeit der Ergebnisse zu gewährleisten.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Setzen Sie die Genauigkeit</span></span><span>
</span><span><span class="hljs-variable">$scale</span></span><span> = </span><span><span class="hljs-number">2</span></span><span>; </span><span><span class="hljs-comment">// Halten Sie zwei Dezimalstellen</span></span><span>
</span><span><span class="hljs-comment">// Produktpreis und Kosten</span></span><span>
</span><span><span class="hljs-variable">$sales_price</span></span><span> = </span><span><span class="hljs-string">'100.00'</span></span><span>; </span><span><span class="hljs-comment">// Verkaufspreis</span></span><span>
</span><span><span class="hljs-variable">$cost_price</span></span><span> = </span><span><span class="hljs-string">'60.00'</span></span><span>; </span><span><span class="hljs-comment">// Kostenpreis</span></span><span>
</span><span><span class="hljs-comment">// Berechnen Sie Steuern und Gebühren(Der Steuersatz ist10%)</span></span><span>
</span><span><span class="hljs-variable">$tax_rate</span></span><span> = </span><span><span class="hljs-string">'0.10'</span></span><span>; </span><span><span class="hljs-comment">// 10%Steuersatz</span></span><span>
</span><span><span class="hljs-variable">$tax</span></span><span> = </span><span><span class="hljs-title function_ invoke__">bcmul</span></span><span>(</span><span><span class="hljs-variable">$sales_price</span></span><span>, </span><span><span class="hljs-variable">$tax_rate</span></span><span>, </span><span><span class="hljs-variable">$scale</span></span><span>); </span><span><span class="hljs-comment">// Verkaufspreis * Steuersatz</span></span><span>
</span><span><span class="hljs-comment">// Gewinn berechnen</span></span><span>
</span><span><span class="hljs-variable">$profit</span></span><span> = </span><span><span class="hljs-title function_ invoke__">bcsub</span></span><span>(</span><span><span class="hljs-variable">$sales_price</span></span><span>, </span><span><span class="hljs-variable">$cost_price</span></span><span>, </span><span><span class="hljs-variable">$scale</span></span><span>); </span><span><span class="hljs-comment">// Verkaufspreis - Kostenpreis</span></span><span>
</span><span><span class="hljs-variable">$profit_after_tax</span></span><span> = </span><span><span class="hljs-title function_ invoke__">bcsub</span></span><span>(</span><span><span class="hljs-variable">$profit</span></span><span>, </span><span><span class="hljs-variable">$tax</span></span><span>, </span><span><span class="hljs-variable">$scale</span></span><span>); </span><span><span class="hljs-comment">// profitieren - Steuern</span></span><span>
</span><span><span class="hljs-comment">// Ausgangsergebnis</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Verkäufe: <span class="hljs-subst">$sales_price</span></span></span><span>\n";
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"kosten: <span class="hljs-subst">$cost_price</span></span></span><span>\n";
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Steuern: <span class="hljs-subst">$tax</span></span></span><span>\n";
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"profitieren: <span class="hljs-subst">$profit_after_tax</span></span></span><span>\n";
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Präzision einstellen : Durch Einstellen von $ scale = 2 geben wir an, dass das Ergebnis zwei Dezimalstellen behält. Dies stellt sicher, dass jeder Schritt der Berechnung eine hohe Genauigkeit aufrechterhalten und die Betriebsnummer-Betriebsfehler vermeiden kann.
Steuerberechnung : Wir verwenden die BCMUL -Funktion, um Steuern zu berechnen, was den Umsatz mit Steuersätzen multipliziert und ein genaues Dezimalergebnis zurückgibt. Der Steuersatz beträgt hier 0,10, was 10% der Steuer bedeutet.
Gewinnberechnung : Bei der Berechnung der Gewinne verwenden wir zunächst die BCSUB -Funktion, um die Kosten vom Umsatz zu subtrahieren, dann Steuern und Gebühren abzuziehen und schließlich genaue Gewinne zu erzielen.
Bei herkömmlicher Gleitkommaoperation stoßen Sie bei der Berechnung hochpräziser Vorgänge wie Währung häufig auf Probleme mit Genauigkeitsverlust. Zum Beispiel:
<span><span><span class="hljs-variable">$price</span></span><span> = </span><span><span class="hljs-number">100.00</span></span><span>;
</span><span><span class="hljs-variable">$cost</span></span><span> = </span><span><span class="hljs-number">60.00</span></span><span>;
</span><span><span class="hljs-variable">$tax</span></span><span> = </span><span><span class="hljs-variable">$price</span></span><span> * </span><span><span class="hljs-number">0.10</span></span><span>;
</span><span><span class="hljs-variable">$profit</span></span><span> = </span><span><span class="hljs-variable">$price</span></span><span> - </span><span><span class="hljs-variable">$cost</span></span><span> - </span><span><span class="hljs-variable">$tax</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$profit</span></span><span>;
</span></span>
Diese Betriebsmethode kann zu ungenauen Ergebnissen führen, da die Genauigkeitsbegrenzung der Schwimmpunktzahlen. Die Verwendung von BCSUB und BCMUL kann sicherstellen, dass die Genauigkeit selbst bei komplexen Operationen nicht verloren geht.
BCSUB und BCMUL sind in PHP leistungsstarke Werkzeuge für mathematische Berechnungen mit hoher Präzision, die besonders für Szenarien geeignet sind, die Finanzierung, Besteuerung und andere Szenarien umfassen, die eine hohe Genauigkeit erfordern. Indem Sie die Genauigkeitsparameter vernünftigerweise festlegen, können Sie sicherstellen, dass in jedem Schritt der Berechnung keinen Rundungsfehler auftritt, wodurch falsche Gewinnberechnungen vermieden werden.