လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Floating Point နံပါတ်များသည်ကိန်းဂဏန်းများကိုမှားယွင်းစွာဆုံးဖြတ်ရန် IS_INT ကိုသုံးပါ။ အဲဒါကိုဘယ်လိုရှောင်ရှားရမယ်ဆိုတာသင်ပေးပါ

Floating Point နံပါတ်များသည်ကိန်းဂဏန်းများကိုမှားယွင်းစွာဆုံးဖြတ်ရန် IS_INT ကိုသုံးပါ။ အဲဒါကိုဘယ်လိုရှောင်ရှားရမယ်ဆိုတာသင်ပေးပါ

gitbox 2025-05-31

floating point နံပါတ်များကိုစစ်ကြောစီရင်ရန် IS_INT ကိုအသုံးပြုသောအခါအမှားအယွင်းများကိုမည်သို့ရှောင်ရှားနိုင်မည်နည်း။

Flowating Point နံပါတ်သည်ကိန်းတစ်ခုရှိမရှိဆုံးဖြတ်လိုပါကအောက်ပါနည်းလမ်းများကိုသုံးနိုင်သည်။

1 ။ ကြမ်းပြင် () သို့မဟုတ် စီမိသည် နှိုင်းယှဉ်ရန် function ကိုသုံးပါ

အကယ်. floating point အရေအတွက်သည်ကိန်းတစ်ခုဖြစ်ပါက၎င်း၏ ကြမ်းပြင် ( rounded) နှင့် ceil (rounded) နှင့်စီမိသည်သူ့ဟာသူနှင့်တန်းတူဖြစ်သင့်သည်။

နမူနာကုဒ်:

 <?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ဒါဟာကိန်းတစ်ခုပါ,တစ် ဦး floating အမှတ်နံပါတ်မဟုတ်ပါဘူး
?>

ဤကုဒ်သည်၎င်းသည် floating point နံပါတ်တစ်ဟုတ်မဟုတ်ဆုံးဖြတ်ပြီးနောက်၎င်းသည်ကိန်းတန်ဖိုးတစ်ခုရှိမရှိဆုံးဖြတ်ရန် ကြမ်းပြင် () ကို အသုံးပြုသည်။

2 ။ အမျိုးအစားကူးပြောင်းခြင်းနှင့်နှိုင်းယှဉ်မှုကိုအသုံးချပါ

floating point နံပါတ်ကိုကိန်းဂဏန်းတစ်ခုအဖြစ်ပြောင်းလဲပြီးမူရင်းတန်ဖိုးနှင့်ညီမျှခြင်းရှိမရှိနှင့်နှိုင်းယှဉ်နိုင်သည်။

 <?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 ကို သုံးပါ

အကယ်. variable သည် string type အမျိုးအစားတစ်ခုဖြစ်ပါက၎င်းသည် floating point မှကိုယ်စားပြုသည့်ကိန်းဂဏန်းဖြစ်ကြောင်းဆုံးဖြတ်ရန်ပုံမှန်အသုံးအနှုန်းကိုသုံးနိုင်သည်။

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

ဤသည် input ကို string ကိုဒေတာကိုပြုပြင်ရန်အတွက်သင့်လျော်သည်။


အကျဉ်းချုပ်

  • is_int () variable type သည်ကိန်းတစ်ခုဖြစ်ရှိမရှိဆုံးဖြတ်သည်။ တန်ဖိုးကိုယ်တိုင်ကကိန်းဂဏန်းတစ်ခုဖြစ်ခြင်းရှိ,

  • floating point နံပါတ်တစ်ခု၏တန်ဖိုးသည်ကိန်းတစ်ခု (ဥပမာ 3.0) ကိန်းဂဏန်းတစ်ခုဖြစ်သော်လည်းတရားစီရင်ရန် is_int () ကို အသုံးပြုခြင်းအားဖြင့် မှားယွင်းစွာ တုံ့ပြန်လိမ့်မည်။

  • Floating Point နံပါတ်သည်ကိန်းဂဏန်းတစ်ခုဖြစ်ခြင်းရှိမရှိဆုံးဖြတ်ရန်လိုအပ်သည့်အခါ ကြမ်းပြင် () (int) အမျိုးအစားပြောင်းလဲခြင်းသို့မဟုတ်ပုံမှန်အသုံးအနှုန်းများနှင့်အခြားနည်းလမ်းများနှင့်အခြားနည်းများကိုသုံးနိုင်သည်။

  • တရားစီရင်ခြင်းအမှားများကြောင့်ပရိုဂရမ်ချွင်းချက်များကိုရှောင်ရှားရန်အမှန်တကယ်မြင်ကွင်းအရသင့်လျော်သောနည်းလမ်းကိုရွေးချယ်ပါ။

PHP နှင့်ဆက်စပ်သောအကြောင်းအရာများအတွက် GitBox.Net/php-Tutorial ကိုဖတ်ရှုပါ။