डबल कॉलम नहीं हैं DECIMAL कॉलम के समान, और आप मुसीबत में पड़ जाएंगे यदि आप वित्तीय डेटा के लिए डबल कॉलम का उपयोग करते हैं।
DOUBLE वास्तव में FLOAT का एक दोहरा सटीक (32 बिट के बजाय 64 बिट) संस्करण है। . फ़्लोटिंग पॉइंट नंबर असली संख्या के अनुमानित प्रतिनिधित्व हैं और वे सटीक नहीं हैं। वास्तव में, 0.01 जैसी साधारण संख्याओं का FLOAT या DOUBLE प्रकारों में सटीक प्रतिनिधित्व नहीं होता है।
DECIMAL कॉलम सटीक प्रतिनिधित्व हैं, लेकिन वे संभावित संख्याओं की बहुत छोटी सीमा के लिए बहुत अधिक स्थान लेते हैं। 0.0001 से 99.9999 तक मान रखने में सक्षम कॉलम बनाने के लिए जैसा आपने पूछा था, आपको निम्नलिखित कथन की आवश्यकता होगी
CREATE TABLE your_table
(
your_column DECIMAL(6,4) NOT NULL
);
कॉलम परिभाषा DECIMAL(M, D) प्रारूप का अनुसरण करती है जहां M अंकों की अधिकतम संख्या है (परिशुद्धता ) और डी दशमलव बिंदु के दाईं ओर अंकों की संख्या है (पैमाने )।
इसका मतलब है कि पिछला कमांड एक कॉलम बनाता है जो -99.999 से लेकर 99.9999 तक के मानों को स्वीकार करता है। आप 0.0000 से लेकर 99.9999 तक का एक अहस्ताक्षरित दशमलव स्तंभ भी बना सकते हैं।
एक उदाहरण के रूप में, यदि आप एक कॉलम चाहते हैं जो -9999.99 से 9999.99 तक के मान स्वीकार करता है, तो कमांड DECIMAL(6,2)
होगा। . जैसा कि आप देख सकते हैं, आप अभी भी एक परिशुद्धता . का उपयोग करते हैं 6 में से, लेकिन केवल पैमाने . की अनुमति दें 2.
MySQL दशमलव पर अधिक जानकारी के लिए आधिकारिक दस्तावेज़ हमेशा एक महान संसाधन होते हैं।
ध्यान रखें कि यह सारी जानकारी MySQL 5.0.3 और इससे अधिक के संस्करणों के लिए सही है। यदि आप पिछले संस्करणों का उपयोग कर रहे हैं, तो आपको वास्तव में अपग्रेड करना चाहिए।
MySQL 8.0.17+ पर अपडेट करें
अहस्ताक्षरित पदावनत है FLOAT, DOUBLE, और DECIMAL कॉलम के लिए।