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

PHP is_finite() 함수 완벽 가이드 – 유한 수 판별 방법과 예제

정의 및 사용법

PHP의 is_finite() 함수는 불리언(Boolean) 값을 반환하는 내장 함수입니다. 이 함수는 주어진 인자가 유효한 유한 수(finite number)인지 검사하며, 유한 수일 경우 TRUE를, 그렇지 않을 경우 FALSE를 반환합니다.

여기서 '유한 수'란 부동 소수점(float)으로 표현 가능한 범위 안에 있는 정상적인 숫자를 의미합니다. 무한대(INF)나 NAN(Not a Number) 같은 특수한 값은 유한 수로 간주되지 않습니다.

구문

is_finite ( float $val ) : bool

매개변수

번호매개변수 및 설명
1val
유한 수 여부를 검사할 값입니다.

반환 값

PHP is_finite() 함수는 val이 float 타입이 허용하는 범위 내에 있으면 TRUE를 반환하고, 범위를 벗어나거나 NAN과 같은 비정상적인 값이면 FALSE를 반환합니다.

PHP 버전

이 함수는 PHP 4.x, PHP 5.x, PHP 7.x 버전에서 모두 사용할 수 있습니다.

예제 1: 일반 숫자 검사

다음 예제는 100이 유한 수임을 확인하는 코드입니다.

<?php
    $val = 100;
    $ret = is_finite($val);
    if ($ret == TRUE) {
        echo $val . "은(는) 유한 수입니다" . "\n";
    } else {
        echo $val . "은(는) 유한 수가 아닙니다" . "\n";
    }
?>

출력 결과

100은(는) 유한 수입니다

예제 2: log(0) 검사

log(0)의 값은 수학적으로 정의되지 않으므로 -INF를 반환합니다. 다음 예제는 이 값이 유한 수인지 검증합니다.

<?php
    $val = log(0);
    var_dump(is_finite($val));
?>

출력 결과

bool(false)

예제 3: acos() 함수의 NAN 검사

cos(x)의 값은 항상 -1과 1 사이에 있기 때문에, acos() 함수에 이 범위를 벗어난 인자를 전달하면 NAN이 반환됩니다.

<?php
    $val = acos(5);
    var_dump(is_finite($val));
?>

출력 결과

bool(false)

예제 4: sqrt(-1) 검사

마찬가지로 sqrt(-1)은 실수 범위에서 정의되지 않아 NAN을 생성하며, 따라서 is_finite() 함수는 FALSE를 반환합니다.

<?php
    $val = sqrt(-1);
    $ret = is_finite($val);
    if ($ret == TRUE) {
        echo $val . "은(는) 유한 수입니다" . "\n";
    } else {
        echo $val . "은(는) 유한 수가 아닙니다" . "\n";
    }
?>

출력 결과

NAN은(는) 유한 수가 아닙니다

함께 알아두면 좋은 관련 함수

  • is_infinite(): 값이 무한대(INF)인지 검사합니다.
  • is_nan(): 값이 NAN(Not a Number)인지 검사합니다.

이 세 함수를 함께 활용하면 부동 소수점 연산 결과의 유효성을 보다 체계적으로 검증할 수 있습니다.