현재 위치: > 최신 기사 목록> BCComp 함수를 사용하여 임의의 수치 비교를 수행하는 방법

BCComp 함수를 사용하여 임의의 수치 비교를 수행하는 방법

gitbox 2025-05-27

PHP에서, 임의의 정밀 수치 비교 연산자 (예 : == , > , < )를 다룰 때 특히 PHP의 기본 부동물 정확도를 초과 할 때 종종 요구를 충족시키지 못합니다. 현재 BCComp 함수가 최선의 선택이됩니다. 이 기사는 BCComp 함수의 사용법을 자세히 소개하고 임의의 정밀 수치 비교를 구현하기위한 작업 단계를 공유합니다.


1. BCComp 함수는 무엇입니까?

BCComp 는 PHP의 BC Math Extension Library의 함수이며, 특히 임의의 정밀도의 두 숫자 문자열을 비교하는 데 특히 사용됩니다. 세 가지 가능한 값을 반환합니다.

  • 0 : 두 숫자는 동일합니다

  • 1 : 첫 번째 숫자는 두 번째 숫자보다 큽니다.

  • -1 : 첫 번째 숫자는 두 번째 숫자보다 작습니다.

BCComp 의 기능 프로토 타입은 다음과 같습니다.

 int bccomp ( string $left_operand , string $right_operand [, int $scale = 0 ] )
  • $ left_operand$ right_operand는 비교할 두 개의 숫자 문자열입니다

  • $ scale은 소수점 이후의 비교 정확도입니다 (기본 0, 정수 비교를 나타냅니다)


2. 왜 임의의 정확도 비교에 BCComp를 사용합니까?

PHP의 부동 소수점 번호는 정밀도를 유한하기 때문에 특정 길이를 초과하는 숫자를 비교하면 오류가 발생합니다. BCComp는 문자열 운영을 통해 숫자를 고밀도 비교하고 모든 길이의 소수성을 지원하며 재무, 과학 컴퓨팅 및 기타 시나리오에 적합합니다.


3. BCComp를 사용하는 특정 단계

1 단계 : 숫자 문자열을 준비하십시오

비교되는 두 숫자가 문자열 형식이며 숫자 형식을 준수하고 소수점을 포함 할 수 있는지 확인하십시오.

 $num1 = "12345678901234567890.12345";
$num2 = "12345678901234567890.12346";

2 단계 : 비교를 위해 BCComp 함수를 호출하십시오

예를 들어, 소수점 5 자리를 비교 해야하는 경우 비교 정확도 $ 스케일을 지정한 다음 5로 설정하십시오.

 $result = bccomp($num1, $num2, 5);

3 단계 : 반환 값에 따라 크기 관계 결정

 if ($result === 0) {
    echo "두 숫자는 동일합니다";
} elseif ($result === 1) {
    echo "$num1 더 큽니다 $num2";
} else {
    echo "$num1 보다 적습니다 $num2";
}

4. 샘플 코드를 완료하십시오

 <?php
// 정밀 번호 비교의 예

$num1 = "9876543210.123456789";
$num2 = "9876543210.123456780";

// 소수점을 비교 한 후8조금
$scale = 8;

$result = bccomp($num1, $num2, $scale);

if ($result === 0) {
    echo "두 숫자는 동일합니다";
} elseif ($result === 1) {
    echo "$num1 더 큽니다 $num2";
} else {
    echo "$num1 보다 적습니다 $num2";
}
?>

5. 주목할만한 것들

  • BCComp 로 전달 된 숫자는 법적 숫자 문자열이어야합니다. 그렇지 않으면 오류 가보고되거나 잘못된 결과가 반환됩니다.

  • $ 스케일 매개 변수는 소수점 비교의 정확도를 결정하고 요구 사항에 따라 합리적으로 설정해야합니다.

  • BC 수학 확장은 기본적으로 PHP에서 활성화되지만 함수를 찾을 수없는 경우 Php.ini에서 BCMATH 확장이 활성화되어 있는지 확인해야합니다.


위의 내용을 통해 BCComp 함수를 쉽게 사용하여 부동 소수점 정확도로 인한 오류 문제를 피하기 위해 임의의 정밀도의 수치 비교를 쉽게 달성 할 수 있습니다.


 <?php
// 사용bccomp함수는 두 가지 고정밀 수치를 비교합니다,샘플 코드 데모
$num1 = "12345.67890123456789";
$num2 = "12345.67890123456780";

$scale = 14;

$result = bccomp($num1, $num2, $scale);

if ($result === 0) {
    echo "두 숫자는 동일합니다";
} elseif ($result === 1) {
    echo "$num1 더 큽니다 $num2";
} else {
    echo "$num1 보다 적습니다 $num2";
}
?>