मैं एक डेटाबेस में सटीक और संख्या के पैमाने की व्याख्या कैसे करूं?


245

मेरे पास एक डेटाबेस में निर्दिष्ट कॉलम है: दशमलव (5,2)

कोई इसकी व्याख्या कैसे करता है?

SQL सर्वर प्रबंधन स्टूडियो में देखे गए कॉलम के गुणों के अनुसार मैं देख सकता हूं कि इसका अर्थ है: दशमलव (न्यूमेरिक सटीक, न्यूमेरिक स्केल)।

वास्तविक शब्दों में सटीक और पैमाने का क्या मतलब है?

5 दशमलव और दो दशमलव स्थानों के साथ दशमलव के रूप में इसे व्याख्या करना आसान होगा ... अर्थात 12345.12

PS मैं एक सहकर्मी से सही उत्तर निर्धारित करने में सक्षम रहा हूं, लेकिन ऑनलाइन उत्तर खोजने में बहुत कठिनाई हुई। इस प्रकार, मैं भविष्य के संदर्भ के लिए स्टैकओवरफ़्लो पर यहाँ प्रश्न और उत्तर देना चाहता हूँ।

जवाबों:


396

संख्यात्मक परिशुद्धता से तात्पर्य संख्या में मौजूद अंकों की अधिकतम संख्या से है।

यानी 1234567.89 की सटीकता 9 है

संख्यात्मक पैमाना दशमलव स्थानों की अधिकतम संख्या को संदर्भित करता है

यानी 123456.789 का स्केल 3 है

इस प्रकार दशमलव (5,2) के लिए अधिकतम अनुमत मूल्य 999.99 है


14
यह मत भूलो कि यदि आप एक ऐसी प्रणाली का उपयोग कर रहे हैं जो आपको Microsoft Access जैसी किसी चीज़ में प्रतिशत के लिए सटीक और इनपुट के पैमाने को पूर्व-परिभाषित करने की अनुमति देता है, तो आपको प्रतिशत पर विचार करना चाहिए क्योंकि यह पूरी संख्या है। इस मामले में, 25.5% को सटीक 4 और 3 के पैमाने (एक नहीं) की आवश्यकता होगी क्योंकि हमें इसे .255 के रूप में विचार करना होगा। मैं इस समस्या पर जल्दी आ गया और थोड़ी देर के लिए सोच में पड़ गया कि स्केल 1 काम क्यों नहीं कर रहा है।
एश्टन शीट्स

1
@mezoid एक नकारात्मक पैमाने मान का क्या अर्थ है?
गीक

@Geek के अनुसार Technet.microsoft.com/en-us/library/ms187746.aspx स्केल शून्य से कम नहीं हो सकता। 0 <= स्केल <= परिशुद्धता। अनिवार्य रूप से एक नकारात्मक पैमाने का मूल्य अर्थहीन होगा।
mezoid


1
क्या यह नहीं होना चाहिए: "न्यूमेरिक परिशुद्धता अधिकतम संख्या को दर्शाता है जो संख्या में मौजूद हो सकता है।" सटीक संख्या 123.5 परिशुद्धता 10 की भी हो सकती है, लेकिन जोड़ने के लिए अधिक अंक नहीं हैं। या यह 123.5000000 हो जाएगा?
क्रिस 311

86

किसी संख्या की शुद्धता अंकों की संख्या है।

किसी संख्या का स्केल दशमलव बिंदु के बाद अंकों की संख्या है।

फ़ील्ड परिभाषा पर सटीक और स्केल सेट करते समय आम तौर पर क्या निहित है कि वे अधिकतम मूल्यों का प्रतिनिधित्व करते हैं।

उदाहरण, एक दशमलव क्षेत्र जिसके साथ परिभाषित किया गया है precision=5और scale=2निम्नलिखित मूल्यों की अनुमति देगा:

  • 123.45 (पी = 5, एस = 2)
  • 12.34 (पी = 4, एस = 2)
  • 12345 (पी = 5, एस = 0)
  • 123.4 (पी = 4, एस = 1)
  • 0 (पी = 0, एस = 0)

निम्न मानों की अनुमति नहीं है या डेटा हानि का कारण होगा:

  • 12.345(p = 5, s = 3) => को छोटा किया जा सकता है 12.35(p = 4, s = 2)
  • 1234.56(p = 6, s = 2) => को छोटा किया जा सकता है 1234.6(p = 5, s = 1)
  • 123.456(p = 6, s = 3) => को छोटा किया जा सकता है 123.46(p = 5, s = 2)
  • 123450 (p = 6, s = 0) => सीमा से बाहर

ध्यान दें कि सीमा आमतौर पर सटीक द्वारा परिभाषित की जाती है: |value| < 10^p...


5
ध्यान दें कि MS SQL सर्वर 12345 या 1234.56 की अनुमति नहीं देगा क्योंकि "[स्केल] दशमलव बिंदु के बाईं ओर अधिकतम अंकों की संख्या निर्धारित करने के लिए [सटीक] से प्रतिस्थापित किया गया है।" (स्रोत: दशमलव और संख्यात्मक )
molnarm

कैसे के बारे में 12345000? परिशुद्धता 5 या 8? यदि 5, तो स्केल के साथ क्या है? स्केल -3?
टावी

@towi इसका क्या मतलब है? यदि आप उसे स्टोर करना चाहते हैं, तो आप 8,0 का उपयोग करेंगे।
रोब ग्रांट

अच्छा जवाब, लेकिन 123450 (p=6,s=0)सीमा से बाहर क्यों है ? 123450 में एक अंक के बाद 6 अंक और कोई अंक नहीं है?
मथायस बर्गर

1
@MatthiasBurger 123450 (p=6,s=0)एक दशमलव क्षेत्र के लिए 5 परिशुद्धता (उदाहरण में वर्णित) के साथ सीमा से बाहर होगा। क्योंकि एक नंबर की शुद्धता आप किसी फ़ील्ड में स्टोर करना चाहते हैं या फ़ील्ड की सटीकता के बराबर या उससे कम होनी चाहिए।
स्नोज़्ज़लबर्ट

26

SQL Server 2000 दस्तावेज़ में परिशुद्धता, स्केल और लंबाई पढ़ी गई है:

परिशुद्धता एक संख्या में अंकों की संख्या है। स्केल एक संख्या में दशमलव बिंदु के दाईं ओर अंकों की संख्या है। उदाहरण के लिए, संख्या 123.45 में 5 की सटीकता और 2 के पैमाने हैं।


धन्यवाद। मुझे बस एहसास हुआ कि डेल्फी / पास्कल कोड का एक टुकड़ा 0 के पैमाने का उपयोग फ्लोट के दशमलव भाग को काट देने के लिए कर रहा था
peterchaula
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.