JSON format တွင်အသုံးပြုသောနံပါတ်အမျိုးအစားသည် JavaScript အပေါ် အခြေခံ. နံပါတ် အမျိုးအစားဖြစ်ပြီးတိကျမှန်ကန်မှုရှိသည့် JavaScript အပေါ် အခြေခံ. နံပါတ်အမျိုးအစားဖြစ်သည်။ JavaScript ၏ နံပါတ် အမျိုးအစားသည် IEEE 754 double precision plate point နံပါတ်စံချိန် (64 bits) နှင့်ကိုယ်စားပြုနိုင်သည့်အများဆုံးတိကျမှန်ကန်မှုကိုအခြေခံသည်။ JSON ဒေတာတွင်ဤတိကျသောအကွာအဝေးထက်ကျော်လွန်သောနံပါတ်များပါ 0 င်သည့်အခါပြောင်းလဲခြင်းဖြစ်စဉ်တွင်တိကျမှန်ကန်မှုကိုဆုံးရှုံးနိုင်သည်။
PHP တွင် JSON_DECODED တွင် JSOCECDE တွင်နံပါတ်များကို iEEE 754 စံပေါ် မူတည်. floating type ( float ) သို့ကိန်းဂဏန်းများကိုခွဲခြမ်းစိတ်ဖြာထားသည်။ ဤအမျိုးအစားသည် JavaScript ၏ နံပါတ် အမျိုးအစားကိုအထူးသဖြင့်အလွန်ကြီးမားသောသို့မဟုတ်အလွန်သေးငယ်သောအရေအတွက်အတွက်တိကျစွာကွဲပြားသည်။
ဥပမာအားဖြင့်, JSON ဒေတာတွင် 123456789012334534578990 ကဲ့သို့သောနံပါတ်များပါ 0 င်ပါက JSONS_DCode ကိုဒေါင်းလုပ်လုပ်ရန်အတွက်နံပါတ်များပါ 0 င်ပါကရလဒ်သည်မတိဖြစ်နိုင်သည်။
နံပါတ်များ၏တိကျမှန်ကန်မှုကိုပိုမိုကောင်းမွန်စွာထိန်းချုပ်နိုင်ရန် PHP သည် JSONS_DECode ရှိနံပါတ်များ၏တိကျမှန်ကန်မှုကိုကိုင်တွယ်ရန်နည်းလမ်းများစွာကိုထောက်ပံ့ပေးသည်။
JSON ရှိနံပါတ်များသည် float pull တိကျမှုအကွာအဝေးများထက်ကျော်လွန်ပါက JSONS_Decode ကို ခေါ်သည့်အခါ JSON_BIGINT_ASS_String option ကို သုံး. ရေပေါ်အမျိုးအစားများအစား transating အမျိုးအစားများအစား strings များထဲသို့ခွဲခြမ်းစိတ်ဖြာနိုင်သည်။ ၎င်းသည်တိကျမှုဆုံးရှုံးမှုကိုရှောင်ရှားသည်။
<span><span><span class="hljs-variable">$json</span></span><span> = </span><span><span class="hljs-string">'{"big_number": 12345678901234567890}'</span></span><span>;
</span><span><span class="hljs-variable">$data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">json_decode</span></span><span>(</span><span><span class="hljs-variable">$json</span></span><span>, </span><span><span class="hljs-literal">false</span></span><span>, </span><span><span class="hljs-number">512</span></span><span>, JSON_BIGINT_AS_STRING);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$data</span></span><span>->big_number; </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း "12345678901234567890"</span></span><span>
</span></span>ဤနည်းအားဖြင့် PHP သည်နံပါတ် 123456789012345345787890 ကို string တစ်ခုအဖြစ်သိုလှောင်ထားသည့်အစား string ကို string တစ်ခုအဖြစ်တင်းတင်းကျပ်ကျပ်အဖြစ်သတ်မှတ်ထားသည်။
နောက်ထပ်ဖြေရှင်းနည်းမှာ JSON ဒေတာများကိုလက်ခံရရှိပြီးနောက်အခြားနည်းလမ်းများ၌တိကျသောထိန်းချုပ်မှုကိုလုပ်ဆောင်ရန်ဖြစ်သည်။ ဥပမာအားဖြင့်, ကြီးမားသောနံပါတ်များကိုထုတ်လုပ်ရန် GMP (GNU မျိုးစုံတိကျသော) extension ကိုသုံးပါ။ GMP extension သည်သင့်အားမတရားတိကျမှု၏ကိန်းဂဏန်းများကိုလုပ်ဆောင်ရန်ခွင့်ပြုသည်။ တိကျသောတွက်ချက်မှုလိုအပ်ပါကအသုံးပြုနိုင်သည်။
<span><span><span class="hljs-variable">$json</span></span><span> = </span><span><span class="hljs-string">'{"big_number": 12345678901234567890}'</span></span><span>;
</span><span><span class="hljs-variable">$data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">json_decode</span></span><span>(</span><span><span class="hljs-variable">$json</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
</span><span><span class="hljs-variable">$bigNumber</span></span><span> = </span><span><span class="hljs-title function_ invoke__">gmp_init</span></span><span>(</span><span><span class="hljs-variable">$data</span></span><span>[</span><span><span class="hljs-string">'big_number'</span></span><span>]);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">gmp_strval</span></span><span>(</span><span><span class="hljs-variable">$bigNumber</span></span><span>); </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း "12345678901234567890"</span></span><span>
</span></span>ဤဥပမာတွင်ကျွန်ုပ်တို့သည်နံပါတ်ကို string တစ်ခုထဲသို့ခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်နံပါတ်တိကျမှန်ကန်မှုမပျောက်ဆုံးစေရန်သေချာစေရန် GMP ကိုအသုံးပြုသည်။
JSON ဒေတာသည်နံပါတ်များနှင့်ကြိုးများအရောအနှောများရောနှောပါက JSOSS နှင့်ဆက်ဆံသောအခါအချက်အလက်အမျိုးအစားများကိုရှင်းလင်းစွာခွဲခြားရန်အကောင်းဆုံးဖြစ်သည်။ အလွန်ကြီးမားသောသို့မဟုတ်အလွန်သေးငယ်သောအရေအတွက်ပါ 0 င်သောအခြေအနေများအတွက် JSON ဒေတာကိုထုတ်လုပ်သည့်အခါသင့်လျော်သောအချက်အလက်ပုံစံကိုအသုံးပြုသည်ကိုသေချာစေရန်အကောင်းဆုံးဖြစ်သည်။ တိကျစွာဆုံးရှုံးမှုအန္တရာယ်ကိုလျှော့ချရန်သိပ္ပံမှတ်စုသို့မဟုတ် string ပုံစံကို အသုံးပြု. ကြီးမားသောနံပါတ်များကိုသုံးသပ်ကြည့်ပါ။
<span><span><span class="hljs-variable">$json</span></span><span> = </span><span><span class="hljs-string">'{"big_number": "12345678901234567890"}'</span></span><span>;
</span><span><span class="hljs-variable">$data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">json_decode</span></span><span>(</span><span><span class="hljs-variable">$json</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$data</span></span><span>[</span><span><span class="hljs-string">'big_number'</span></span><span>]; </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း "12345678901234567890"</span></span><span>
</span></span>ဤနည်းအားဖြင့် PHP parsing numbers floating အမျိုးအစားများသို့ပြ the နာကိုရှောင်ရှားနိုင်ပြီးအချက်အလက်များ၏သမာဓိကိုထိန်းသိမ်းထားသည်။
PHP တွင် floating type နံပါတ်များသည်တိကျမှန်ကန်မှုကိုဆုံးရှုံးနိုင်သည့်အတွက် floating type ကိုနှိုင်းယှဉ်သောအခါတိကျမှုမရှိနိုင်သည်။ ဤပြ problem နာကိုရှောင်ရှားရန်, strings သို့မဟုတ်တိကျသောဂဏန်းအမျိုးအစားများကိုနှိုင်းယှဉ်ကြည့်ရှုနိုင်ရန်အထူးသဖြင့်ဘဏ် finance ာရေးသို့မဟုတ်အထူးတိကျမှုလိုအပ်သည့်အခြားတွက်ချက်မှုများနှင့်နှိုင်းယှဉ်လျှင်နှိုင်းယှဉ်ခြင်းအတွက်အသုံးပြုနိုင်သည်။
JSON_BIGINT_AS_ASS_ASS_STRING option ကိုအသုံးပြုခြင်းသည် PHP သည်စွမ်းဆောင်ရည်ကိုအကျိုးသက်ရောက်နိုင်သည့် JSON ကိုခွဲစိတ်ကုသမှုအကျိုးသက်ရောက်နိုင်သည့် JSON ကိုခွဲခြမ်းစိတ်ဖြာသည့်အခါ PPP သည်ကြီးမားသောကိန်းအားလုံးကိုကြိုးများအဖြစ်လုပ်ဆောင်ရန်ဖြစ်သည်။ ထို့ကြောင့်အဖြေရှာသောအခါအချက်အလက်တိကျမှုနှင့်စွမ်းဆောင်ရည်အကြားမျှတမှုကိုချိန်ညှိရန်လိုအပ်သည်။
JSON ဒေတာနှင့်ဆက်ဆံရာတွင်ဒီဂျစ်တယ်တိကျမှုပြ problem နာသည်အထူးသဖြင့်ကြီးမားသောနံပါတ်များသို့မဟုတ်မြင့်မားသောလိုအပ်ချက်များနှင့်ပတ်သက်သည့်အခါလျစ်လျူရှုမရသောစိန်ခေါ်မှုတစ်ခုဖြစ်သည်။ PHP သည် JSONS_BIGINT_ASS_ASSTRASTRING option ကို အသုံးပြု. သို့မဟုတ်တိကျသောတွက်ချက်မှုအတွက် GMP extension ကို အသုံးပြု. ကြီးမားသောနံပါတ်များကိုအသုံးပြုခြင်းကဲ့သို့သောဤပြ problem နာကိုဖြေရှင်းရန်နည်းလမ်းများစွာကိုထောက်ပံ့ပေးသည်။ အမှန်တကယ်လိုအပ်ချက်များအရသင့်လျော်သောအပြောင်းအလဲနဲ့နည်းလမ်းကိုရွေးချယ်ခြင်းသည်အချက်အလက်များ၏တိကျမှုနှင့်စနစ်၏တည်ငြိမ်မှုကိုသေချာစေနိုင်သည်။