PHP 8에서 새롭게 도입된 fdiv() 함수는 IEEE 754 표준에 따라 부동소수점(floating-point) 나눗셈을 수행합니다. 두 개의 숫자를 나눈 뒤 그 결과를 부동소수점 값으로 반환하는 수학 연산 함수입니다.
fdiv()는 intdiv(), fmod() 함수와 유사하게 동작하며, 0으로 나누는 연산을 허용한다는 점이 특징입니다. 일반적인 나눗셈에서처럼 오류(DivisionByZeroError)를 발생시키는 대신, 0으로 나눌 경우 INF, -INF, NAN 중 하나의 값을 반환합니다.
반환값의 종류
INF (무한대) – 수학적으로 무한(infinite)에 해당하는 계산 결과를 의미합니다.
-INF (음의 무한대) – 음의 무한대, 즉 -1.796E308보다 작은 값을 의미합니다.
NAN (Not a Number, 숫자가 아님) – 정의되지 않은 수학적 계산의 결과입니다. 인자가 함수의 유효 범위를 벗어난 경우 등이 여기에 해당합니다.
대표적인 NAN 발생 사례
0/0 = NAN INF/INF = NAN
예제 1: fdiv() 함수 기본 사용법
<?php echo fdiv(15, 4); ?>
실행 결과
3.75
15를 4로 나눈 결과인 3.75가 부동소수점 형태로 정상 출력됩니다.
예제 2: 0으로 나누기 처리
<?php echo fdiv(10, 0); // INF (무한대) echo fdiv(-10, 0); // -INF (음의 무한대) echo fdiv(0, 0); // NAN (숫자가 아님) ?>
실행 결과
INF -INF NAN
양수를 0으로 나누면 INF, 음수를 0으로 나누면 -INF, 그리고 0을 0으로 나누면 수학적으로 정의할 수 없으므로 NAN이 반환됩니다. 이처럼 fdiv() 함수를 활용하면 0으로 나누는 상황에서 프로그램이 중단되지 않고 안정적으로 결과를 처리할 수 있습니다.