এটি সচেতন হওয়ার বেশি হওয়ায় এটি কোনও প্রশ্ন নয়। আমি একটি অ্যাপ্লিকেশন আপডেট করেছি যা json_encode()
পিএইচপি 7.1.1 ব্যবহার করে এবং আমি কখনও কখনও 17 ডিজিটের প্রসারিত করতে ভাসা পরিবর্তন করা একটি সমস্যা দেখছিলাম। ডকুমেন্টেশন অনুসারে, পিএইচপি 7.1.x serialize_precision
ডাবল মানগুলিকে এনকোড করার সময় নির্ভুলতার পরিবর্তে ব্যবহার শুরু করেছে । আমি অনুমান করছি যে এটির একটি উদাহরণ মানের কারণ caused
472.185
হতে
472.18500000000006
যে মান পেরিয়ে যাওয়ার পরে json_encode()
। আমার আবিস্কৃত হওয়ার পর আমি ফিরে পিএইচপি 7.0.16 রূপে ফিরিয়ে এবং আমি আর সঙ্গে সমস্যা আছে json_encode()
। আমি পিএইচপি 7.0.16 এ ফিরে যাওয়ার আগে পিএইচপি 7.1.2 এ আপডেট করার চেষ্টা করেছি।
এই প্রশ্নের পিছনে যুক্তিটি পিএইচপি থেকে শুরু করে - ভাসমান সংখ্যা যথার্থতা , তবে এর শেষ কারণ হ'ল যথার্থতা থেকে ক্রিয়াকলাপের পরিবর্তে সিরিয়ালাইজ_প্রিপেসি ব্যবহার json_encode()
।
যদি কেউ এই সমস্যার সমাধানের বিষয়টি জানেন তবে আমি যুক্তি / সমাধানটি শুনে বেশি খুশি হব।
বহুমাত্রিক অ্যারে থেকে অংশ (আগে):
[staticYaxisInfo] => Array
(
[17] => stdClass Object
(
[variable_id] => 17
[static] => 1
[min] => 0
[max] => 472.185
[locked_static] => 1
)
)
এবং মধ্য দিয়ে যাওয়ার পরে json_encode()
...
"staticYaxisInfo":
{
"17":
{
"variable_id": "17",
"static": "1",
"min": 0,
"max": 472.18500000000006,
"locked_static": "1"
}
},
ini_set('serialize_precision', 14); ini_set('precision', 14);
এটি সম্ভবত এটির আগের মতো সিরিয়ালাইজ করে তুলবে, তবে যদি আপনি সত্যিই আপনার ভাসা সম্পর্কিত কোনও নির্দিষ্ট নির্ভুলতার উপর নির্ভর করেন তবে আপনি কিছু ভুল করছেন।