is_float()
함수의 사용법
is_float()
함수는
주어진 값이 부동소수점 숫자(float) 타입인지 확인하는 함수입니다.
이 함수는 매개변수로 전달된 값이 부동소수점 숫자 타입이면 true
를 반환하고, 그렇지 않으면 false
를 반환합니다.
부동소수점 숫자(float) 타입은
부동소수점 숫자를 나타내는 데이터 타입입니다. 소수점을 가진 숫자로, 정수와 달리 소수 부분을 포함합니다.
$a = 10.5;
$b = '10.5';
$c = 10.0;
$d = -10.52;
$e = '-10.52';
$f = 10.00;
var_dump(is_float($a)); // true
var_dump(is_float($b)); // false
var_dump(is_float($c)); // true
var_dump(is_float($d)); // true
var_dump(is_float($e)); // false
var_dump(is_float($f)); // true
이 함수의 관련 함수를 참조하세요.
is_float()
함수의 형식은 다음과 같습니다.
구문
is_float(mixed $value): bool
매개변수
$value |
필수. 부동소수점 숫자(float) 타입를 확인할 값입니다. |
---|
반환 값
매개변수로 전달된 값이 부동소수점 숫자 타입이면 true
를 반환하고, 그렇지 않으면 false
를 반환합니다.
주의할 점
is_float()
함수를 사용할 때 몇 가지 주의해야 할 점이 있습니다.
문자열 '10.5'
처럼 부동소수점 숫자를 나타내는 문자열은 false
를 반환합니다.
$float = '10.5';
var_dump(is_float($float)); // false
나눗셈 연산자(/
) 사용 시 자동 형변환
$float_1 = 10 / 3;
$float_2 = 10 / 2;
var_dump(is_float($float_1)); // true
var_dump(is_float($float_2)); // false
var_dump(gettype($float_2)); // 'integer'
위 코드에서 주의할 점은 부동소수점 연산에서 결과가 정수로 나오면 자동으로 형변환이 이루어져 변수의 타입이 부동소수점 숫자(float)에서 정수(integer)로 변경될 수 있다는 것입니다. 따라서 is_float()
로 타입을 확인하면 예상치 못한 결과가 발생할 수 있습니다. 정수로 결과가 나오는 경우에는 is_float()
는 false
를 반환하고, 인수로 전달된 값의 데이터 타입을 문자열로 반환하는 gettype()
은 'integer'
를 반환합니다.
10.0
처럼 소수점 이하가 0
으로 표현되더라도 true
를 반환합니다.
$float = 10.0;
var_dump(is_float($float)); // true
PHP에서 부동소수점 숫자의 산출 연산 결과는 부동소수점 숫자(float) 타입으로 처리됩니다.
$result = 0.5 + 0.5; // 1이 예상됨
var_dump($result); // float(1) => 정수(int) 타입 아님 주의!
var_dump(is_float($result)); // true
PHP에서 부동소수점 숫자의 산술 연산 결과는 기본적으로 부동소수점 숫자(float) 타입으로 처리됩니다. 또한, 부동소수점 숫자와 정수 등을 함께 연산하면 결과는 부동소수점 숫자로 자동 형변환이 이루어지게 됩니다.
$float_result = 6.0 / 2;
var_dump($float_result); // float(3)
활용 예제
is_float()
함수는 다음과 같은 경우에 사용하면 편리하거나 유용합니다.
변수가 부동소수점 숫자 타입인지 확인하는 경우
변수가 부동소수점 숫자인지 확인하려는 경우 사용됩니다. 예를 들어, 사용자 입력이나 외부 소스에서 받은 데이터의 타입을 확인할 때 유용합니다.
$value = 3.14;
if (is_float($value)) {
echo '이 값은 부동소수점 숫자입니다.';
} else {
echo '이 값은 부동소수점 숫자가 아닙니다.';
}
// 출력: '이 값은 부동소수점 숫자입니다.'
소수점의 출력 가독성 향상
부동소수점 숫자를 출력할 때 사용자에서 가독성을 향상시키키 위해 number_format()
을 사용하여 특정한 소수점의 자리를 지정할 때 유용합니다. 예를 들어, 다음 코드는 $number
가 숫자 타입이라는 가정하에 부동소수점 숫자타입인지 확인하고, 그렇다면 소수점 2자리까지 출력합니다.
$number = 3.1415926535;
if (is_float($number)) {
echo number_format($number, 2); // 출력: 3.14
} else {
echo $number;
}
이렇게 코드를 구성하면 입력 데이터가 부동소수점 숫자가 아닌 경우에는 원래의 값을 출력하게 됩니다. 따라서 가독성을 향상시키면서도 입력 데이터의 타입을 고려한 처리를 수행할 수 있습니다.
참고문헌
같이 보기
- PHP gettype() 함수 - 변수의 데이터 타입 확인
- PHP is_int() 함수 - 변수의 정수(integer) 타입 확인
- PHP is_bool() 함수 - 변수의 부울(boolean) 타입 확인
- PHP is_numeric() 함수 - 변수의 값이 숫자 또는 숫자 문자열인지 확인
- PHP is_string() 함수 - 변수의 문자열(string) 타입 확인
- PHP is_array() 함수 - 변수의 배열(array) 타입 확인
- PHP is_object() 함수 - 변수의 객체(object) 타입 확인
- PHP is_resource() 함수 - 변수의 리소스(resource) 타입 확인
- PHP is_null() 함수 - 변수의 NULL 타입 확인
- PHP ctype_digit() 함수 - 문자열이 모두 숫자인지 확인