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

PHP intdiv() 함수 – 정수 나눗셈의 몫을 구하는 방법

정의 및 사용법

intdiv() 함수는 두 정수 매개변수를 나눈 정수 몫(integer quotient)을 반환합니다. 만약 x/y를 나누었을 때 몫이 i이고 나머지가 r이라면 다음 관계가 성립합니다.

x = y × i + r

이때 intdiv(x, y)i, 즉 나머지를 제외한 정수 몫만을 반환합니다.

구문

intdiv ( int $x , int $y ) : int

매개변수

번호매개변수 및 설명
1x
나눗셈 표현식에서 분자(피제수)에 해당하는 값입니다.
2y
나눗셈 표현식에서 분모(제수)에 해당하는 값입니다.

반환 값

PHP intdiv() 함수는 xy로 나눈 정수 몫을 반환합니다. 두 매개변수가 모두 양수이거나 모두 음수인 경우 반환 값은 양수가 되며, 부호가 서로 다른 경우에는 음수가 됩니다.

PHP 버전

이 함수는 PHP 7부터 도입되었으며, PHP 7.x 이상 버전에서 사용할 수 있습니다.

예제 1: 분자가 분모보다 작은 경우

다음 예제는 분자가 분모보다 작으면 intdiv() 함수가 0을 반환한다는 것을 보여줍니다.

<?php
    $x = 10;
    $y = 3;
    $r = intdiv($x, $y);
    echo "intdiv(" . $x . "," . $y . ") = " . $r . "\n";
    $r = intdiv($y, $x);
    echo "intdiv(" . $y . "," . $x . ") = " . $r;
?>

출력

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

intdiv(10,3) = 3
intdiv(3,10) = 0

예제 2: 매개변수의 부호 조합에 따른 결과

다음 예제에서는 분자와 분모 중 하나라도 음수이면 intdiv() 함수가 음수를 반환하는 것을 확인할 수 있습니다.

<?php
    $x = 10;
    $y = 3;
    $r = intdiv($x, $y);
    echo "intdiv(" . $x . "," . $y . ") = " . $r . "\n";
    $x = 10;
    $y = -3;
    $r = intdiv($x, $y);
    echo "intdiv(" . $x . "," . $y . ") = " . $r . "\n";
    $x = -10;
    $y = 3;
    $r = intdiv($x, $y);
    echo "intdiv(" . $x . "," . $y . ") = " . $r . "\n";
    $x = -10;
    $y = -3;
    $r = intdiv($x, $y);
    echo "intdiv(" . $x . "," . $y . ") = " . $r;
?>

출력

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

intdiv(10,3) = 3
intdiv(10,-3) = -3
intdiv(-10,3) = -3
intdiv(-10,-3) = 3

예제 3: 분모가 0인 경우

다음 예제에서는 분모가 0일 때 DivisionByZeroError 예외가 발생하는 것을 보여줍니다.

<?php
    $x = 10;
    $y = 0;
    $r = intdiv($x, $y);
    echo "intdiv(" . $x . "," . $y . ") = " . $r . "\n";
?>

출력

위 코드를 실행하면 치명적인 오류가 발생합니다.

PHP Fatal error: Uncaught DivisionByZeroError: Division by zero

예제 4: 소수점 이하가 무시되는 경우

다음 예제에서는 매개변수의 소수점 이하 부분이 무시되고, intdiv() 함수가 정수 부분에만 적용되는 것을 보여줍니다.

<?php
    $x = 2.90;
    $y = 1.90;
    $r = intdiv($x, $y);
    echo "intdiv(" . $x . "," . $y . ") = " . $r . "\n";
?>

출력

소수 부분이 버려진 후 계산되므로 다음과 같은 결과가 출력됩니다.

intdiv(2.9,1.9) = 2