ကျယ်ကျယ်ပြန့်ပြန့်အသုံးပြုသောဆာဗာဘေးထွက် Scripting ဘာသာစကားသည် PHP သည် floating point နံပါတ်များကိုတွက်ချက်သောအခါ PHP သည်တိကျမှန်ကန်မှုကင်းမဲ့ခြင်း၏ပြ problem နာကိုမကြာခဏရင်ဆိုင်နေရလေ့ရှိသည်။ ဤသည်အဓိကအားဖြင့်ရေပေါ်အမှတ်နံပါတ်များကိုကွန်ပျူတာအတွင်းရှိ binary နံပါတ်များဖြင့်ကိုယ်စားပြုကြောင်းနှင့်ဒ decimal မ decimal မကိန်းများကိုဒ decimal မကိန်းဂဏန်းများကိုတိကျမှန်ကန်စွာကိုယ်စားပြု။ မရပါ။ တွက်ချက်မှုလုပ်ငန်းစဉ်တိုးတက်လာသည်နှင့်အမျှဤသေးငယ်သောအမှားများကိုဆက်လက်စုဆောင်းနေပြီးနောက်ဆုံးတွင်ရလဒ်၏တိကျမှန်ကန်မှုကိုထိခိုက်စေသည်။
ရိုးရိုးရှင်းရှင်း floating-point လည်ပတ်မှုပင်မမျှော်လင့်ဘဲအမှားများဖြစ်ပေါ်စေနိုင်သည်။ ဥပမာအားဖြင့်:
$num1 = 0.1;
$num2 = 0.2;
$sum = $num1 + $num2;
echo $sum; // output ကိုတင်းကျပ်စွာမဟုတ်ပါဘူး0.3,ဒါဟာအနီးစပ်ဆုံးတန်ဖိုးပါ
ဤအချက်ကနေ့စဉ်သင် coding တွင်ရေပေါ်အရေအတွက်စစ်ဆင်ရေးလုပ်ငန်းများဆောင်ခဲ့နိုင်သည့်မသေချာမရေရာမှုကိုအမြဲဂရုပြုသင့်ကြောင်းပြသသည်။
အသုံးများသောအချက်မှာ floating point နံပါတ်များကိုတွက်ချက်မှုများကိုပြုလုပ်ရန်ကိန်းဂဏန်းများအဖြစ်ပြောင်းလဲရန်နှင့်ပြီးစီးပြီးနောက် floating point နံပါတ်များကိုပြန်လှည့်ရန်ဖြစ်သည်။ ၎င်းသည် floating-point တိကျမှန်ကန်မှုဆုံးရှုံးမှုအန္တရာယ်ကိုထိရောက်စွာလျှော့ချနိုင်သည်။ ဥပမာအားဖြင့်:
$num1 = 0.1;
$num2 = 0.2;
$sum = (intval($num1 * 100) + intval($num2 * 100)) / 100;
echo $sum; // ထုတ်လုပ်ခြင်း0.3
PHP Built-in BCMATICT တိုးချဲ့ခြင်းသည် BCDAD (BCSUB (), BCSUM (), BCMUL () နှင့် BCDIV) ကဲ့သို့သောတိကျသောသင်္ချာဆိုင်ရာလုပ်ဆောင်မှုများကိုပေးသည်။ ဥပမာများမှာအောက်ပါအတိုင်းဖြစ်သည် -
$num1 = '0.1';
$num2 = '0.2';
$sum = bcadd($num1, $num2, 1);
echo $sum; // ထုတ်လုပ်ခြင်း0.3
၎င်းသည်တန်းတူနိမိတ်လက်ခဏာကို အသုံးပြု. floating-point နံပါတ်များကိုတိုက်ရိုက်နှိုင်းယှဉ်ရန်စိတ်မချရပါ။ floating-point နံပါတ်နှစ်ခုအကြားခြားနားချက်ကိုဆုံးဖြတ်ခြင်းအားဖြင့် Error Carreshold ကိုဆုံးဖြတ်ရန်သတ်မှတ်ထားသင့်သည်။ ဥပမာအားဖြင့်:
$num1 = 0.1 + 0.2;
$num2 = 0.3;
if (abs($num1 - $num2) < 0.0001) {
echo 'တူညီသော';
} else {
echo '不တူညီသော';
}
Floating Point နံပါတ်များ၏တိကျမှန်ကန်မှုပြ problem နာသည်ကွန်ပျူတာသိပ္ပံတွင်ဘုံပြ problem နာဖြစ်ပြီး PHP သည်ခြွင်းချက်မဟုတ်ပါ။ Integer တွက်ချက်မှု, BCMath တိုးချဲ့ခြင်းနှင့်အမှားသည်းခံစိတ်နှိုင်းယှဉ်မှုကဲ့သို့သောမဟာဗျူဟာများချမှတ်ခြင်းအားဖြင့် floating-point အရေအတွက်စစ်ဆင်ရေးအမှားများကြောင့်ဖြစ်ပေါ်လာသောပြ es နာများကိုထိရောက်စွာရှောင်ရှားနိုင်သည်။ အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်တွက်ချက်မှုရလဒ်များ၏တိကျမှုနှင့်လုပ်ထုံးလုပ်နည်းများ၏တည်ငြိမ်မှုကိုသေချာစေရန်တိကျသောစီးပွားရေးလုပ်ငန်းများအပေါ် အခြေခံ. သင့်တင့်လျောက်ပတ်သောစီးပွားရေးလိုအပ်ချက်များအပေါ် အခြေခံ. ကျိုးကြောင်းဆီလျော်စွာရွေးချယ်သင့်သည်။
ဤဆောင်းပါးသည် Php floating point နံပါတ်အပြောင်းအလဲနဲ့အတွက်သင့်ကိုအဖိုးတန်ရည်ညွှန်းချက်နှင့်ကူညီနိုင်လိမ့်မည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။