PHP에서 bccomp() 함수는 두 개의 임의 정밀도(arbitrary precision) 숫자를 비교할 때 사용됩니다. 이 함수는 두 숫자를 문자열 형태로 전달받아, 두 값을 비교한 결과를 정수(integer)로 반환합니다.
문법
int bccomp($left_string1, $right_string1, $scaleval)
매개변수
bccomp() 함수는 세 가지 매개변수를 받습니다: $left_string1, $right_string2, 그리고 $scaleval.
$left_string1 − 비교하려는 두 숫자 중 왼쪽 피연산자(operand)를 나타내며, 문자열 타입의 매개변수입니다.
$right_string2 − 비교하려는 두 숫자 중 오른쪽 피연산자를 나타내며, 역시 문자열 타입의 매개변수입니다.
$scaleval − 비교 시 소수점 이하 몇 자리까지 계산에 포함할지 지정합니다. 정수 타입의 매개변수이며, 기본값은 0입니다.
반환값
bccomp() 함수는 두 숫자 $left_string1과 $right_string2를 비교한 결과를 정수 값으로 반환합니다.
$left_string1이 $right_string2보다 크면 1을 반환합니다.
$left_string1이 $right_string2보다 작으면 -1을 반환합니다.
두 숫자가 같으면 0을 반환합니다.
예제 1 − 같은 값을 가진 매개변수로 bccomp() 함수 사용하기
<?php // 두 개의 숫자 입력 $left_string1 = "3.12"; $right_string2 = "3"; // scale 값 없이 두 숫자의 // 비교 결과를 계산 $result = bccomp($left_string1, $right_string2); // 결과 출력 echo "결과는: ", $result; ?>
출력
결과는: 0
위 프로그램은 scale 값 없이 같은 값으로 취급되는 매개변수를 사용했기 때문에 0을 반환합니다. scale 값이 기본값인 0으로 설정되면 소수점 이하는 비교 대상에서 제외되어, "3.12"와 "3"은 동일하게 판단됩니다.
예제 2
<?php // 두 개의 숫자 입력 $left_string1 = "30.12"; // 왼쪽 값 > 오른쪽 값 $right_string2 = "3"; // scale 값으로 2 사용 $scaleval = 2; // 두 숫자의 비교 결과를 계산 $result = bccomp($left_string1, $right_string2); // 결과 출력 echo "출력 결과는: ", $result; ?>
출력
출력 결과는: 1
왼쪽 값이 오른쪽 값보다 크기 때문에 1을 반환합니다.
예제 3
<?php // 두 개의 숫자 입력 $left_string1 = "30.12"; $right_string2 = "35"; // 오른쪽 값 > 왼쪽 값 // scale 값으로 2 사용 $scaleval = 2; // 두 숫자의 비교 결과를 계산 $result = bccomp($left_string1, $right_string2); // 결과 출력 echo $result; ?>
출력
-1
오른쪽 값이 왼쪽 값보다 크기 때문에 -1을 반환합니다.