정의 및 사용법
fmod는 floating modulo(부동 소수점 모듈로)를 의미하며, 두 개의 부동 소수점 숫자를 나눴을 때의 나머지를 반환하는 PHP 함수입니다.
예를 들어 x ÷ y 연산의 결과가 몫 i와 나머지 r이라고 할 때, 다음 관계가 성립합니다.
x = y × i + r
이때 fmod(x, y)는 위 식의 r, 즉 나머지 값을 반환합니다.
구문
fmod ( float $x , float $y ) : float
매개변수
| 번호 | 매개변수 및 설명 |
|---|---|
| 1 | x 나눗셈식에서 분자(피제수)에 해당하는 값입니다. |
| 2 | y 나눗셈식에서 분모(제수)에 해당하는 값입니다. |
반환 값
PHP fmod() 함수는 x를 y로 나눈 결과의 부동 소수점 나머지를 반환합니다. 이때 나머지의 부호는 항상 피제수인 x의 부호를 따른다는 점에 유의해야 합니다.
지원 PHP 버전
이 함수는 PHP 4.x, PHP 5.x, PHP 7.x 등 대부분의 버전에서 사용할 수 있습니다.
예제 1: 기본 사용법
다음 예제는 5.25를 1.5로 나눈 나머지를 계산하여 0.75를 반환합니다.
<?php
$x = 5.25;
$y = 1.5;
$r = fmod($x, $y);
echo "fmod(" . $x . "," . $y . ") = " . $r;
?>
출력 결과
fmod(5.25,1.5) = 0.75
예제 2: 음수 피제수
다음 예제처럼 피제수가 음수일 경우, 나머지 역시 음수가 됩니다.
<?php
$x = -10;
$y = 3;
$r = fmod($x, $y);
echo "fmod(" . $x . "," . $y . ") = " . $r;
?>
출력 결과
fmod(-10,3) = -1
예제 3: 피제수와 제수가 모두 음수
두 매개변수(-10과 -3)가 모두 음수인 경우에도 나머지는 피제수의 부호를 따르므로 결과는 -1입니다.
<?php
$x = -10;
$y = -3;
$r = fmod($x, $y);
echo "fmod(" . $x . "," . $y . ") = " . $r;
?>
출력 결과
fmod(-10,-3) = -1
예제 4: 0이 포함된 경우
피제수가 0이고 제수가 0이 아닐 때는 나머지가 0이 되며, 반대로 제수가 0이면 결과는 NAN(Not a Number)이 됩니다.
<?php
$x = 0;
$y = 3.33;
$r = fmod($x, $y);
echo "fmod(" . $x . "," . $y . ") = " . $r . "\n";
$r = fmod($y, $x);
echo "fmod(" . $y . "," . $x . ") = " . $r;
?>
출력 결과
fmod(0,3.33) = 0
fmod(3.33,0) = NAN
참고 사항
fmod() 함수는 일반적인 나머지 연산자(%)와 달리 부동 소수점 숫자에도 사용할 수 있다는 장점이 있습니다. 또한 나머지의 부호가 항상 피제수를 따르기 때문에, 수학적으로 정확한 부동 소수점 나머지 계산이 필요한 경우 유용하게 활용됩니다.