現在の位置: ホーム> 最新記事一覧> IS_INTを使用する場合、浮動小数点数が整数であると判断するエラーを回避する方法は?

IS_INTを使用する場合、浮動小数点数が整数であると判断するエラーを回避する方法は?

gitbox 2025-05-31

IS_INTを使用して浮動点数を判断するときにエラーを回避する方法は?

浮動小数点数が整数値であるかどうかを判断する場合は、次の方法を使用できます。

1。floor ()またはceil()関数を使用して比較します

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

2。タイプ変換と比較を利用します

浮動小数点数を整数に変換し、元の値に等しいかどうかを比較できます。

 <?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)
?>

この方法はシンプルで直感的です。

3. filter_varを使用して、正規表現を組み合わせます

変数が文字列型の場合、正規表現を使用して、それが浮動小数点で表される整数であるかどうかを判断することもできます。

 <?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を参照してください。