လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> IS_FINITITION နှင့် IS_NAN ကိုပေါင်းစပ်နည်း

IS_FINITITION နှင့် IS_NAN ကိုပေါင်းစပ်နည်း

gitbox 2025-05-29

ကိန်းဂဏန်းတွက်ချက်မှုများနှင့်ဒေတာများကိုစစ်ဆေးခြင်းပြုလုပ်ရာတွင် PHP သည် floating-point နံပါတ်များ ကို ရှာဖွေရန်အချို့သောလုပ်ဆောင်ချက်များကိုပေးသည် ဤလုပ်ဆောင်ချက်နှစ်ခုသည်တန်ဖိုးတစ်ခုသည်အကန့်အသတ်ရှိသောတန်ဖိုးတစ်ခုဖြစ်ခြင်းရှိမရှိဆုံးဖြတ်ရန်အသုံးပြုသည်။ အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ကျွန်ုပ်တို့သည်တန်ဖိုးများအမှားအယွင်းများသို့မဟုတ်လုပ်ငန်းလည်ပတ်မှုခြွင်းချက်များကိုရှောင်ရှားရန်တန်ဖိုးများ၏တရားဝင်မှုကိုသေချာစေရန်သူတို့ကိုတစ်ချိန်တည်းတွင်အသုံးပြုရန်လိုအပ်သည်။

အခြေခံ function နိဒါန်း

  • is_finite (float $ num): Bool
    $ num သည်က န့် အသတ်ရှိသောတန်ဖိုးကိုဟုတ်ကဲ့, ၎င်းကိုအပြုသဘောနှင့်အပျက်သဘောဆောင်သောအသင်္ချေ (inf and -inf) ကိုဖယ်ထုတ်ရန်အသုံးပြုနိုင်သည်။

  • is_nan (float $ num): Bool
    $ num num (နံပါတ်မဟုတ်) သည် rue သို့ပြန်လာပါ။ များသောအားဖြင့်တရားမ 0 င်သင်္ချာဆိုင်ရာစစ်ဆင်ရေးများ၏ရလဒ်ဖြစ်သည်။

အဘယ်ကြောင့်ပေါင်းစပ်အသုံးပြု?

ပြင်ပဒေတာ (အသုံးပြုသူထည့်သွင်းမှု, ဖိုင်ဖတ်ခြင်းသို့မဟုတ် API ပြန်လာ) ကိုလုပ်ဆောင်သောအခါအချက်အလက်သည်တရားဝင် floating point နံပါတ်ဖြစ်ရမည်ဟုကြိုတင်မယူနိုင်ပါ။ ပုံမှန်မြင်ကွင်းတစ်ခုသည်ကွဲပြားခြင်း, စတုရန်းအမြစ်, logarithm စသည်ဖြင့်သင်္ချာဆိုင်ရာလုပ်ငန်းများလုပ်ဆောင်ရန်ဖြစ်သည်။ ဥပမာအားဖြင့်:

 $result = log(0); // ပြန်လာ -INF

သို့မဟုတ်:

 $result = acos(2); // ဒိုမိန်းထဲက,ပြန်လာ NAN

is_finite () တစ်ခုတည်းကိုအသုံးပြုခြင်းသည်နန်တန်ဖိုးများကိုဖယ်ထုတ်ခြင်းမပြုလုပ်ပါ။ ထို့ကြောင့်တန်ဖိုးနှစ်ခုသည် "သာမန်" တန်ဖိုးတစ်ခုရှိမရှိပိုမိုနားလည်သဘောပေါက်မှုများကိုပိုမိုနားလည်သဘောပေါက်ရန်လုပ်ဆောင်မှုနှစ်ခုကိုပေါင်းစပ်ရမည်။

ပူးတွဲအသုံးပြုမှုအတွက်အကောင်းဆုံးအလေ့အကျင့်

တန်ဖိုးသည် "ပုံမှန်" ဟုတ်မဟုတ်ကိုပိုမိုထိရောက်စွာဆုံးဖြတ်ရန်, အောက်တွင်ဖော်ပြထားသည့်အတိုင်းအထွေထွေ function ကိုရေးနိုင်သည်။

 function is_valid_number($value) {
    return is_finite($value) && !is_nan($value);
}

ဒီ function ကိုသုံးပြီး၎င်းကိုအမျိုးမျိုးသောဒေတာအပြောင်းအလဲအတွက်ကျွန်ုပ်တို့အလွယ်တကူခေါ်ဆိုနိုင်သည်။

 $data = [
    log(0),
    3.1415,
    acos(2),
    1.0e309
];

foreach ($data as $value) {
    if (is_valid_number($value)) {
        echo "သက်တမ်းရှိတန်ဖိုး: $value\n";
    } else {
        echo "မမှန်ကန်သောတန်ဖိုး: $value\n";
    }
}

output ကိုဖြစ်လိမ့်မည်:

 မမှန်ကန်သောတန်ဖိုး: -INF
သက်တမ်းရှိတန်ဖိုး: 3.1415
မမှန်ကန်သောတန်ဖိုး: NAN
မမှန်ကန်သောတန်ဖိုး: INF

လျှောက်လွှာဇာတ်လမ်းတစ်ပုဒ်နှင့်အတူပေါင်းစပ်

ဥပမာအားဖြင့်ပိုက်လိုင်းပြုပြင်ခြင်းတွင်ပိုက်လိုင်းခွဲခြမ်းစိတ်ဖြာခြင်းမှဂဏန်း> https: /gitbox.net/api/api/psi/data </ ​​code> မှနံပါတ်ခင်းထားသည်။ မဆိုသင်္ချာစစ်ဆင်ရေးများမပြုလုပ်မီ is_valid_number_number () သည်မမျှော်လင့်သော Nan သို့မဟုတ်အဆုံးမဲ့ညစ်ညမ်းမှုကိုရှောင်ရှားရန်အချက်အလက်များကိုသန့်ရှင်းရေးလုပ်ရန်။

 $json = file_get_contents('https://gitbox.net/api/data');
$data = json_decode($json, true);

$cleanData = array_filter($data, 'is_valid_number');
$average = array_sum($cleanData) / count($cleanData);

echo "ပျမ်းမျှတန်ဖိုး: $average";

၎င်းသည်ကုဒ်ကိုသန့်ရှင်းရေးလုပ်ရုံသာမကယုတ္တိဆိုင်ရာအားနည်းချက်များကိုလည်းလျော့နည်းစေသည်။

အကျဉ်းချုပ်

is_finite () နှင့် is_nan () ပေါင်းစပ်အသုံးပြုခြင်း () ပေါင်းစပ်မှုတွင်ကိန်းဂဏန်းတန်ဖိုးများ၏တရားဝင်မှုကိုအတည်ပြုရန်အရေးကြီးသောနည်းလမ်းတစ်ခုဖြစ်သည်။ ၎င်းကိုအထွေထွေလုပ်ဆောင်ချက်တစ်ခုအနေဖြင့်၎င်းကိုထည့်သွင်းပြီးထည့်သွင်းစစ်ဆေးခြင်း, ဒေတာ api ည့်ခံခြင်း, အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဤခုခံကာကွယ်သည့်ပရိုဂရမ်နည်းသောနည်းစနစ်သည်ခက်ခဲသောရှာဖွေတွေ့ရှိရန်ခက်ခဲသောနယ်နိမိတ်အမှားအယွင်းများကိုမကြာခဏရှောင်တတ်သည်။