"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > MySQL में फ़्लोटिंग-पॉइंट तुलनाएँ ग़लत क्यों हैं?

MySQL में फ़्लोटिंग-पॉइंट तुलनाएँ ग़लत क्यों हैं?

2024-11-20 को प्रकाशित
ब्राउज़ करें:470

Why are Floating-Point Comparisons in MySQL Inaccurate?

MySQL फ़्लोटिंग-पॉइंट तुलना चुनौतियाँ

MySQL उपयोगकर्ता फ़्लोटिंग-पॉइंट मानों की तुलना करते समय अक्सर अशुद्धियों का सामना करते हैं। निम्नलिखित उदाहरण पर विचार करें:

CREATE TABLE users (points float);
INSERT INTO users VALUES (50.12);
INSERT INTO users VALUES (34.57);
INSERT INTO users VALUES (12.75);

क्वेरी उन उपयोगकर्ताओं से गिनती(*) का चयन करती है जहां अंक > "12.75" 2 की गिनती की अपेक्षा के बावजूद 3 लौटाता है।

समस्या फ़्लोटिंग-पॉइंट अंकगणित के साथ

MySQL फ़्लोटिंग-पॉइंट का उपयोग करता है फ्लोट प्रकार के मानों को संग्रहित करने और उनमें हेरफेर करने के लिए अंकगणित। यह प्रणाली एक महत्व (वास्तविक संख्या) और एक घातांक के संयोजन का उपयोग करके संख्याओं का प्रतिनिधित्व करती है, जिसके परिणामस्वरूप संभावित सटीक समस्याएं उत्पन्न होती हैं। उदाहरण के लिए, फ़्लोटिंग-पॉइंट संख्याओं के द्विआधारी प्रतिनिधित्व के कारण MySQL में दर्ज किए जाने पर मान 12.75 को 12.75000005722 के रूप में संग्रहीत किया जा सकता है।

सटीक दशमलव प्रतिनिधित्व

इससे बचने के लिए अशुद्धियाँ, सटीक दशमलव प्रतिनिधित्व के लिए MySQL में DECIMAL डेटा प्रकार का उपयोग करने की अनुशंसा की जाती है। फ्लोट के विपरीत, दशमलव मानों को निश्चित-बिंदु संख्याओं के रूप में संग्रहीत करता है, सटीक परिशुद्धता सुनिश्चित करता है। कथन:

तालिका उपयोगकर्ताओं को बदलें दशमलव बिंदु को संशोधित करें(6,2);यह अंकों को 6 कुल अंकों और 2 दशमलव स्थानों वाले दशमलव कॉलम में बदल देगा। आप आवश्यकतानुसार परिशुद्धता और पैमाने को समायोजित कर सकते हैं। मूल्य. सटीक दशमलव प्रतिनिधित्व और सटीक तुलना के लिए, MySQL में DECIMAL डेटा प्रकार का उपयोग करने की दृढ़ता से अनुशंसा की जाती है। DECIMAL का उपयोग करके, आप फ़्लोटिंग-पॉइंट तुलनाओं के संभावित नुकसान से बच सकते हैं और अपने डेटा की विश्वसनीयता सुनिश्चित कर सकते हैं।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3