လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP ၏ CEIL () function ကိုအသုံးပြုသောအခါလူအများစုကအဘယ်ကြောင့်ဒ decimal မပြုပြင်ခြင်းနှင့်တွက်ချက်မှုများကိုကွဲပြားစေပြီးရလဒ်အနေဖြင့်အမှားအယွင်းများဖြစ်ပေါ်စေသည်။

PHP ၏ CEIL () function ကိုအသုံးပြုသောအခါလူအများစုကအဘယ်ကြောင့်ဒ decimal မပြုပြင်ခြင်းနှင့်တွက်ချက်မှုများကိုကွဲပြားစေပြီးရလဒ်အနေဖြင့်အမှားအယွင်းများဖြစ်ပေါ်စေသည်။

M66 2025-07-10

PHP ပရိုဂရမ်တွင် Ceil () function ကိုမကြာခဏ floating point နံပါတ်များကိုအထက်သို့မကြာခဏအသုံးပြုလေ့ရှိသည်။ အထူးသဖြင့်အတုအယောင်, စျေးနှုန်းတွက်ချက်မှုနှင့်သုတ်ထုတ်ခြင်းစသည့်အခြေအနေများတွင် သို့သော်ဌာနခွဲစစ်ဆင်ရေးများနှင့်အသုံးပြုသောအခါဒ dec မကိန်းများကိုတင်းကြပ်စွာကိုင်တွယ်နိုင်ခြင်းမရှိသေးပါက၎င်းသည်မငြိမ်မသက်မှုများဖြစ်ပေါ်စေနိုင်သည်။ ဤဆောင်းပါးသည်ဤသာမန်လူများနားလည်မှုလွဲခြင်းနှင့်၎င်း၏ဖြေရှင်းချက်များကိုတူးဖော်ပါလိမ့်မည်။

နားလည်မှုလွဲခြင်းဥပမာ - ယုတ္တိဗေဒဆိုင်ရာအမှား

စုစုပေါင်းဒေတာ 95 ခုဖြင့်စာမျက်နှာတစ်ခုစီအတွက်ဒေတာ 10 ခုကိုပြသသည့် paging စနစ်တစ်ခုကိုမြင်ယောင်ကြည့်ပါ။ စာမျက်နှာစုစုပေါင်းအရေအတွက်ကိုတွက်ချက်ရန်ပုံမှန်နည်းလမ်းမှာအောက်ပါအတိုင်းဖြစ်သည် -

<code> $ စုစုပေါင်း = 95; $ itemperpage = 10; $ Totalpages = Ceil ($ စုစုပေါင်း / $ ipsperpage); ECHO $ ​​စုစုပေါင်း; // output: 10 </ code>

ဤရိုးရှင်းသောဥပမာတွင် output သည်မှန်ကန်သည်။ သို့သော် ဒေါ်လာစုစုပေါင်း၏ တန်ဖိုးအရင်းအမြစ်အရင်းအမြစ်သည်အသုံးပြုသူ input or External API မှမသေချာမရေရာသေးသောသို့မဟုတ် Integer ဌာနခွဲရလဒ်များကိုအသုံးပြုခြင်းသည်ပြ problems နာများပေါ်ပေါက်လာနိုင်သည်။

ဥပမာအားဖြင့်:

<code> $ စုစုပေါင်း = intval ("95.4"); // အမှား $ itemperpage = 10; အမှားအားဖြင့် 95 အဖြစ်ကိုင်တွယ်သည်; $ Totalpages = Ceil ($ စုစုပေါင်း / $ ipsperpage); // အမှန်တကယ်မျှော်လင့်ချက်သည်စာမျက်နှာ 10 ခု eCho $ စုစုပေါင်းဖြစ်သည်။ // အမှန်တကယ် output: 10 </ code>

ဤရလဒ်သည်မှန်ကန်သော်လည်းစုစုပေါင်းဟုယူဆသော်လည်း 94.1 တွင်၎င်းကိုကိန်းဂဏန်းတစ်ခုအဖြစ်ရေးဆွဲခြင်းသည်တစ်ကိန်းကိုရေတွက်ခြင်းအားဖြင့်ဖြစ်ပေါ်လာလိမ့်မည်။

<code> $ စုစုပေါင်း = intval ("94.1"); // $ စုစုပေါင်းစုစုပေါင်း 94 စုစုပေါင်း = ceil ($ စုစုပေါင်း / 10) အဖြစ်သတ်မှတ်သည်။ // ceil (9.4) => 10 <</ code>

ဥပမာအားဖြင့်သင်သည်ဥပမာအားဖြင့်ဆက်လက်တွန်းအားပေးပါကသင်သည်အခြားတွက်ချက်မှုများကိုသင်မှီခိုအားထားရန်ဒ decimal မရရှိရန်အတွက်သင်မှီခိုနေရသည်။

<Code> $ စုစုပေါင်း = 94; $ itemperpage = 10; $ Totalpages = Ceil ($ စုစုပေါင်း / $ ipsperpage); // ceil (9.4) => 10 <</ code>

မှန်ကန်သောရလဒ်ဤနေရာတွင် output ကိုနေဆဲဖြစ်သည်။ ဒါပေမယ့်အစား divisor ကိုသုံးမယ်ဆိုရင်

<Code> $ Totalpages = ceil (intdiv ($ စုစုပေါင်း, $ attrimesepage)); // intiiv (94, 10) => 9 </ code>

ဤရလဒ်သည်မှားယွင်းသောအရာ သည် မှားယွင်းသောကြောင့် ,

နက်ရှိုင်းသောအကြောင်းပြချက်များ - သွယ်ဝိုက်ပြောင်းလဲခြင်းနှင့်နားလည်မှုလွဲခြင်း

Developer တော်တော်များများက ceil () ကို သုံး နေသမျှကာလပတ်လုံးရလဒ်သည်မှန်ကန်ရမည်ဟုထင်ကြပြီးရလဒ်သည်မှန်ကန်ရမည်, ဌာနခွဲ၏အစိတ်အပိုင်းတစ်ခုသည်ခွဲစိတ်ကုသမှုပုံစံအမျိုးမျိုးဖြစ်သော (သို့) အလယ်အလတ်အကူးအပြောင်းကြောင့် Decimals နေရာများမှဖယ်ထုတ်ခြင်းခံရသည်နှင့်တပြိုင်နက်,

ထို့အပြင်အချို့သောဒေတာဘေ့စ်များသည်ရလဒ်များကိုပြန်လည်ရယူရန်အတွက်ရလဒ်များပြန်ပို့ခြင်းများရှိပါက PHP သည်ပုံမှန်အားဖြင့်ပြောင်းလဲသောအခါအမှားတစ်ခုရှိလိမ့်မည်။

<code> $ ရလဒ် = "94.8"; // ဒေတာဘေ့စ်မှရရှိသော string $ စုစုပေါင်း = စီil ($ ရလဒ် / 10); // floating point နံပါတ်များသို့အလိုအလျောက်ကူးပြောင်းပါ, သို့သော် format ကိုမှန်ကန်ကြောင်းသေချာအောင်လုပ်ပါ </ code>

ရလဒ် သည်စံသတ်မှတ်ချက်မဟုတ်သော decimales (ဥရောပပုံစံ) ကိုအသုံးပြုခြင်းကဲ့သို့သောစံမဟုတ်သောပုံစံဖြင့်ပြုလုပ်ပါက၎င်းသည် cebil () ၏ရလဒ်ကိုအကျိုးသက်ရောက်စေမည့် floating point အရေအတွက်ကိုမှန်ကန်စွာပြောင်းလဲလိမ့်မည်မဟုတ်ပါ။

အကြံပြုမှန်ကန်သောချဉ်းကပ်မှု

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

  1. အသုံးပြုပါ (float) သွန်း:

    <code>

$ Totalpages = Ceil (float) $ စုစုပေါင်း / (float) $ attrightage);
</ code>

  1. ရောနှောရန် intdiv () နှင့် ceil () ကို အသုံးပြုခြင်းကိုရှောင်ကြဉ်ပါ။ အကယ်. သင်သည် Integer ဌာနခွဲကိုအသုံးပြုရန်လိုအပ်ပါကကျန်ရှိသောအပေါ် အခြေခံ. ဆုံးဖြတ်ရန်အကြံပြုသည်။

    <code>

$ Totalpages = Intiiv ($ရပွဲ, $ attripageperpage);
IF ($ စုစုပေါင်း% $ itemperpage> 0) {
$ Totalpages + = 1;
}
</ code>

  1. အသုံးပြုသူများ (သို့) APIs မှ input အတွက် intval () အစား floatval () ကိုအသုံးပြုရန်အကြံပြုသည်။

<code> $ စုစုပေါင်း = floatval ($ _ total ['totter]] ?? 0); </ code>

အကျဉ်းချုပ်

PHP ၏ Ceil () function ကိုအသုံးပြုသောအခါဒ decimal မကိုတိုင်းဒေသကြီးနှင့်စနစ်တကျကိုင်တွယ်ခြင်းမရှိသေးပါကယုတ္တိအမှားများကိုဖြစ်ပေါ်စေရန်အလွန်လွယ်ကူသည်။ အထူးသဖြင့်ယုတ္တိဗေဒကိုရေတွက်ခြင်း,

developer များသည်သွယ်ဝိုက်သောအမျိုးအစားပြောင်းလဲခြင်းနှင့် Integer ဌာန၏ထောင်ချောက်များကိုသတိထားသင့်သည်။