浮動小数点数が整数値であるかどうかを判断する場合は、次の方法を使用できます。
浮動小数点数が整数である場合、その床() (丸みを帯びた)と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を参照してください。