현재 위치: > 최신 기사 목록> BCSUB 및 BCMUL을 사용하여 정확성을 보장하기 위해 수익을 계산하는 방법은 무엇입니까?

BCSUB 및 BCMUL을 사용하여 정확성을 보장하기 위해 수익을 계산하는 방법은 무엇입니까?

gitbox 2025-08-19

PHP에서 정확한 수학 연산을 수행 할 때 기존의 부동 소수점 계산은 종종 정확도 손실을 유발합니다. 특히 통화 및 이익과 같은 영역을 다룰 때 정확도 문제가 특히 중요합니다. PHP는 매우 강력한 수학 확장 라이브러리 인 BCMath (큰 숫자)를 제공하며, 이는 많은 수와 고정밀 계산 문제를 해결하는 데 특별히 사용됩니다. BCSUBBCMUL 은 BCMATH 라이브러리의 두 가지 기능으로 이익을 계산할 때 높은 정밀도를 보장하기 위해 함께 사용할 수 있습니다.

1. BCSUBBCMUL을 이해하십시오

  • bcmul (String $ left_operand, String $ right_operand, int $ scale = 0) : 두 숫자의 곱셈을 계산하고 결과를 반환 할 소수점 자리 수를 지정하는 데 사용됩니다. $ left_operand$ right_operand는 곱셈 작업을 수행하기위한 두 개의 피연산자입니다. $ 스케일은 소수점 후 정확도를 제어하는 데 사용되며 기본값은 0입니다.

  • bcsub (String $ left_operand, String $ right_operand, int $ scale = 0) : 두 숫자의 뺄셈을 계산하는 데 사용되며 결과를 반환하는 소수점 자리 수를 지정할 수 있습니다. $ left_operand 는 빼고, $ right_operand 는 빼고, $ scale은 소수점 이하 자리 수를 지정하는 데 사용되며, 기본값은 0입니다.

2. BCSUBBCMUL을 통한 이익을 계산하는 방법

이익 계산 과정에서, 우리는 종종 추가, 뺄셈 및 곱셈과 같은 운영을 수행해야합니다. 이익을 계산할 때 먼저 판매를 계산 한 다음 판매에서 비용을 빼고 마지막으로 이익을 얻어야한다고 가정하십시오.

예를 들어, 회사가 제품을 판매 할 때 가격은 100 위안이고 생산 비용은 60 위안이며 세금은 매출의 10%입니다. 그런 다음 이익 계산 단계는 다음과 같이 분해 될 수 있습니다.

  1. 판매에 대한 세금 계산 : 세금은 판매의 10%이며 BCMUL을 사용하여 세금을 계산합니다.

  2. 이익 계산 : 이익은 판매 뺀 생산 비용 및 세금, 즉 이익 = 판매 - 비용 - 세금입니다. 여기서 우리는 BCSUB를 사용하여 먼저 비용을 빼낸 다음 세금을 세금으로 결과의 정확성을 보장합니다.

3. 샘플 코드

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>

</span><span><span class="hljs-comment">// 정확도를 설정하십시오</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">// 소수점 이하 두 자리를 유지하십시오</span></span><span>

</span><span><span class="hljs-comment">// 제품 가격 및 비용</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">// 판매 가격</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">// 비용 가격</span></span><span>

</span><span><span class="hljs-comment">// 세금과 수수료를 계산합니다(세율은입니다10%)</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%세율</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">// 판매 가격 * 세율</span></span><span>

</span><span><span class="hljs-comment">// 이익을 계산합니다</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">// 판매 가격 - 비용 가격</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">// 이익 - 구실</span></span><span>

</span><span><span class="hljs-comment">// 출력 결과</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"매상: <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">"비용: <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">"구실: <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">"이익: <span class="hljs-subst">$profit_after_tax</span></span></span><span>\n";

</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

4. 코드 파싱

  • 정밀도 설정 : $ scale = 2를 설정함으로써 결과는 두 자리 자리 두 곳을 유지하도록 지정합니다. 이를 통해 계산의 각 단계는 높은 정확도를 유지하고 부동 소수점 수업 오류를 피할 수 있습니다.

  • 세금 계산 : BCMUL 기능을 사용하여 세금을 계산하여 매출에 세율을 곱하고 정확한 소수점 결과를 반환합니다. 여기의 세율 은 0.10으로 세금의 10%를 의미합니다.

  • 이익 계산 : 이익을 계산할 때 먼저 BCSUB 기능을 사용하여 판매에서 비용을 빼고 세금과 수수료를 빼고 마지막으로 정확한 이익을 얻습니다.

5. 왜 BCSUBBCMUL을 사용 하는가

기존의 부동 소수점 작동에서 통화와 같은 고정밀 작업을 계산할 때 종종 정확도 손실 문제가 발생합니다. 예를 들어:

 <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>

이 작동 방법은 부동 소수점 수의 정확도 제한으로 인해 부정확 한 결과를 초래할 수 있습니다. BCSUBBCMUL을 사용하면 복잡한 작업에서도 정확도가 손실되지 않을 수 있습니다.

6. 요약

PHP에서 BCSUBBCMUL은 고정밀 수학 계산을위한 강력한 도구이며, 이는 금융, 과세 및 높은 정밀도가 필요한 기타 시나리오와 관련된 시나리오에 사용하기에 특히 적합합니다. 정확도 매개 변수를 합리적으로 설정하면 계산의 각 단계에 반올림 오류가 없도록하여 잘못된 이익 계산을 피할 수 있습니다.