Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP bccomp() 함수로 두 개의 임의 정밀도 숫자 비교하는 방법

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을 반환합니다.