हम उपयोग करते हैं double
।
* हांफी *
क्यों?
क्योंकि यह किसी भी 15 अंकों की संख्या का प्रतिनिधित्व कर सकता है, जहां दशमलव बिंदु नहीं है । सभी एक 8 बाइट्स के लिए!
तो यह प्रतिनिधित्व कर सकता है:
0.123456789012345
123456789012345.0
... और बीच में कुछ भी।
यह उपयोगी है क्योंकि हम वैश्विक मुद्राओं के साथ काम कर रहे हैं , औरdouble
विभिन्न स्थानों की दशमलव संख्या को स्टोर कर सकते हैं जिनकी हम संभावित रूप से मुठभेड़ करेंगे।
एक एकल double
क्षेत्र जापानी येन में 999,999,999,999,999 का प्रतिनिधित्व कर सकता है, अमेरिकी डॉलर में 9,999,999,999,999.99 और यहां तक कि बिटकॉइन में 9,999,999.99999999s
यदि आप ऐसा ही करने की कोशिश करते हैं decimal
, तो आपको decimal(30, 15)
14 बाइट्स की आवश्यकता होती है।
चेतावनियां
बेशक, का उपयोग double
किए बिना caveats नहीं है।
हालाँकि, यह सटीकता की हानि नहीं है क्योंकि कुछ इंगित करते हैं। भले ही double
स्वयं आंतरिक रूप से आधार 10 प्रणाली के लिए सटीक नहीं हो सकता है , हम डेटाबेस से इसके महत्वपूर्ण दशमलव स्थानों तक खींचते हुए मूल्य को गोल करके सटीक बना सकते हैं। जरूरत है तो वह है (उदाहरण यदि यह आउटपुट होने वाला है, और बेस 10 का प्रतिनिधित्व आवश्यक है।)
कैवियट हैं, किसी भी समय हम इसके साथ अंकगणित करते हैं, हमें पहले परिणाम को सामान्य करने की आवश्यकता है (इसे अपने महत्वपूर्ण दशमलव स्थानों पर गोल करके):
- उस पर तुलना करना।
- इसे डेटाबेस में वापस लिखना।
एक अन्य प्रकार का चेतावनी है, इसके विपरीत, decimal(m, d)
जहां डेटाबेस प्रोग्रामों को m
अंकों से अधिक संख्या के साथ डालने से रोकेगा , ऐसी कोई मान्यता मौजूद नहीं है double
। एक प्रोग्राम 20 अंकों का एक उपयोगकर्ता इनपुट मूल्य सम्मिलित कर सकता है और यह अंत में एक गलत राशि के रूप में दर्ज किया जाएगा।
deimal(10,2)
मैं क्या उपयोग करता हूं ... आप अपेक्षित आकार के आधार पर मूल्यों को समायोजित कर सकते हैं