부동 소수점 번호가 정수 값인지 여부를 결정하려면 다음 방법을 사용할 수 있습니다.
부동 소수점 번호가 정수 인 경우 바닥 () (둥글게) 및 Ceil () (라운드)은 그 자체와 같아야합니다.
샘플 코드 :
<?php
function isFloatInteger($num) {
if (!is_float($num)) {
return false;
}
return floor($num) == $num;
}
var_dump(isFloatInteger(3.0)); // bool(true)
var_dump(isFloatInteger(3.5)); // bool(false)
var_dump(isFloatInteger(4)); // bool(false) — 4정수입니다,부동 소수점 번호가 아닙니다
?>
이 코드는 먼저 부동 소수점 번호인지 여부를 결정한 다음 Floor ()를 사용하여 정수 값인지 확인합니다.
부동 소수점 번호를 정수로 변환 한 다음 원래 값과 동일인지 비교할 수 있습니다.
<?php
function isFloatValueInteger($num) {
return is_float($num) && (int)$num == $num;
}
var_dump(isFloatValueInteger(5.0)); // bool(true)
var_dump(isFloatValueInteger(5.1)); // bool(false)
?>
이 방법은 간단하고 직관적입니다.
변수가 문자열 유형 인 경우 정규 표현식을 사용하여 플로팅 포인트로 표시되는 정수 여부를 결정할 수도 있습니다.
<?php
function isFloatStringInteger($str) {
return preg_match('/^-?\d+\.0+$/', $str) === 1;
}
var_dump(isFloatStringInteger("3.0")); // bool(true)
var_dump(isFloatStringInteger("3.00")); // bool(true)
var_dump(isFloatStringInteger("3.1")); // bool(false)
?>
입력 문자열 데이터를 처리하는 데 적합합니다.
is_int () 변수 유형이 정수인지 여부를 결정하고 값 자체가 정수인지 여부를 결정하지 않습니다.
부동 소수점 번호의 값이 정수 (예 : 3.0)이더라도 is_int ()를 사용하여 판단하여 False를 반환합니다.
부동 소수점 번호가 정수 값인지 확인 해야하는 경우 Floor () , (int) 유형 변환 또는 일반 표현식 및 기타 방법을 사용할 수 있습니다.
유형의 판단 오류로 인한 프로그램 예외를 피하기 위해 실제 시나리오에 따라 적절한 방법을 선택하십시오.
더 많은 PHP 관련 콘텐츠는 gitbox.net/php-tutorial 을 참조하십시오.