मैं NULL और शून्य के बीच अंतर कैसे समझा सकता हूं?


59

प्रतिशत परिवर्तन सूत्र का उपयोग करने वाली समस्या पर काम करना:

percent change =  100 * [(new value - old value) / old value]

यदि कोई प्रोग्रामर नहीं हो सकता है new value or old value = NULL, तो मैं अंतर को कैसे 0समझाऊंगा?

मेरा बॉस सोच रहा है कि टेक्स्टबॉक्स में एक मूल्य के बजाय एक खाली स्ट्रिंग क्यों है, क्योंकि हमारे पास पुराना मूल्य है, लेकिन नया मूल्य नहीं है।


11
"मैं अंतर कैसे समझाऊंगा"? किस भाषा में? कुछ भाषाएँ एक अपवाद को फेंकती हैं (या बढ़ाती हैं)। कुछ NULL परिणाम लौटाएंगे। कुछ इस बात पर निर्भर करते हैं कि NULL कैसे लागू किया जाता है। आपको बहुत अधिक विशिष्ट होना चाहिए।
एसएलटी

29
खाली स्ट्रिंग के बजाय "डेटा अनुपलब्ध" कहने के लिए टेक्स्टबॉक्स बदलें।
क्रेग

3
@ZJR - तो बॉक्स के नीचे लाल रंग में संदेश प्रदर्शित करें। बिंदु है, "NULL" या एक खाली स्ट्रिंग का UI में ऑब्जेक्ट के मेमोरी एड्रेस के रूप में अधिक उपयोग होता है।
detly

10
सादृश्य से, 0 डिग्री तापमान, और कोई तापमान रीडिंग अलग-अलग स्थितियाँ नहीं हैं ...
NWS

4
मैं अब जवाब नहीं दे सकता कि यह संरक्षित है, लेकिन मैं हमेशा समझाता हूं कि NULLयह एक राज्य है , न कि एक मूल्य - इसका मतलब है कि आप मूल्य नहीं जानते हैं। एसक्यूएल के लिए मैं आम तौर पर प्रदर्शित करने के लिए पार्टी सादृश्य का उपयोग करता हूं।
JNK

जवाबों:


101

एक बॉस को "शून्य" और "अशक्त" के बीच का अंतर समझाने के लिए:

"शून्य" एक मूल्य है। यह शून्य की अनूठी, ज्ञात मात्रा है, जो अंकगणित और अन्य गणित में सार्थक है।

"नल" एक गैर-मूल्य है। यह डेटा मान के लिए एक "प्लेसहोल्डर" है जो ज्ञात नहीं है या निर्दिष्ट नहीं है। यह इस संदर्भ में केवल सार्थक है; गणितीय संचालन को शून्य पर नहीं किया जा सकता है (ऐसे किसी भी ऑपरेशन का परिणाम अपरिभाषित है, और इसलिए इसे आमतौर पर शून्य के रूप में भी दर्शाया जाता है)।

उदाहरण के लिए, टिप्पणियों के रूप में: "आपकी वार्षिक आय क्या है?" एक संख्यात्मक उत्तर की आवश्यकता वाला प्रश्न है। "0" किसी के लिए पूरी तरह से मान्य उत्तर है जो काम नहीं करता है और जिसकी कोई निवेश आय नहीं है। यदि उपयोगकर्ता किसी मूल्य पर प्रवेश नहीं करता है, तो वे जरूरी नहीं कि कोई पैसा कमाएं; वे केवल आपके सॉफ़्टवेयर को यह बताना नहीं चाहते थे कि वे कितना (या थोड़ा) बनाते हैं। यह अज्ञात है, निर्दिष्ट नहीं है; इसलिए, सॉफ़्टवेयर को जारी रखने के लिए, आप सॉफ़्टवेयर के भीतर उस डेटा फ़ील्ड के लिए "नल" प्लेसहोल्डर निर्दिष्ट करें। यह एक डेटा परिप्रेक्ष्य से तकनीकी रूप से मान्य है; यह व्यवसाय के स्तर पर मान्य है या नहीं यह इस बात पर निर्भर करता है कि गणितीय ऑपरेशन करने के लिए एक वास्तविक संख्यात्मक मान (यहां तक ​​कि शून्य) आवश्यक है (जैसे करों की गणना, या लाभ का निर्धारण करने वाले थ्रेसहोल्ड के साथ तुलना)।

कंप्यूटर में, वस्तुतः किसी भी चर पर अशक्त युक्त ऑपरेशन अशक्त या त्रुटि की स्थिति में परिणाम देगा, क्योंकि चूँकि चर का कोई भी मान ज्ञात नहीं है, इसलिए अभिव्यक्ति का परिणाम ज्ञात नहीं किया जा सकता है। शून्य पर गणित प्रदर्शन करने के बराबर होगा यदि मैंने आपसे पूछा कि "मैं अभी क्या सोच रहा हूँ?" आपके लिए एक निश्चित उत्तर देना असंभव है क्योंकि आप उस संख्या को नहीं जानते हैं जिसके बारे में मैं सोच रहा हूं। शून्य पर एक ऑपरेशन, इसके द्वारा विभाजित करने के अलावा, आमतौर पर मान्य है और एक और ज्ञात, अद्वितीय मूल्य लौटाएगा।


37
"प्लेसहोल्डर" एक उपयोगी विवरण है। यदि आपने एक सर्वेक्षण किया और पूछा कि "आप कितने साल के हैं?" सही प्रतिनिधित्व होगा NULL
नाथन लॉन्ग

तो हम बस कह सकते हैं कि NULL एक अपरिभाषित डेटा प्रकार के साथ मेमोरी में एक प्लेसहोल्डर है।
मैक्सवुड

1
@Maxood - यह प्रोग्रामिंग भाषा पर निर्भर करता है। मैं एक पूर्णांक चर पर विचार करूँगा जिसे शून्य होने की अनुमति है (वाक्यविन्यास का उपयोग करके) और कोई ज्ञात पूर्णांक मान होने के लिए शून्य पर सेट है। अपेक्षित प्रकार ज्ञात है, इसलिए यह कहने के लिए कि परिभाषित नहीं है, कोई 100% सही नहीं मान सकता है। यह कहना सही है कि अशक्त का कोई मूल्य या प्रकार नहीं है। मैं व्यक्तिगत रूप से कहना है कि अशक्त या शून्य संदर्भ और भाषा अपनी का उपयोग कर के आधार पर प्रकार परिभाषित नहीं है। C # में इसका सीधा मतलब यह होगा कि वस्तु का संदर्भ अपरिभाषित होगा।
रामहाउंड

NULLexplict है अभाव डेटा की, यह एक प्लेसहोल्डर नहीं है, यह की एक एकल एकान्त प्रतिनिधित्व है कोई डेटा।

"प्लेसहोल्डर" शब्दावली इस उत्तर में तब से है जब यह पहली बार पोस्ट की गई थी, और मैं इसे अब नहीं बदलूंगा। इस सवाल से पीछे हटने वाले संपादन स्पष्टीकरण में अन्य बिंदुओं को स्पष्ट करने के लिए थे। जैसा कि अधिकांश भाषाओं में लागू किया गया है, यह वास्तव में एक "प्लेसहोल्डर" है; स्मृति शून्य में स्मृति में एक आरक्षित स्थान जो मेमोरी पॉइंटर्स द्वारा "संदर्भित" होने के एक्सप्रेस उद्देश्य के लिए कार्यक्रम की संरचना में मौजूद है, यह इंगित करने के लिए कि वे उपयोगी कुछ भी नहीं इंगित करते हैं। ओपी को अपने बॉस को बताने की जरूरत होगी।
कीथ्स

172

बॉस-बोल हमेशा कठिन होता है ...

ज़ीरो एक संख्या है जिससे आप इसके साथ काम कर सकते हैं।

नल एक गेंडा है। यह मौजूद नहीं है इसलिए आप इसके साथ कुछ भी नहीं कर सकते।


45
गेंडा के लिए +1! मुझे जोड़ना होगा: बहुत अच्छी व्याख्या।
B20овиЈ

14
मुझे अपने प्रश्नों को रखना शुरू करना पड़ सकता है NVL(somefield,'UNICORN');)
FrustratedWithFormsDesigner

11
तब बॉस बस पूछ सकता है "हम इसे 0 क्यों नहीं बनाते हैं ताकि हम इसके साथ काम कर सकें? अशक्त बेकार लगता है।"
AlbeyAmakiir

26
@AlbeyAmakiir - ऐसे बॉस की सही प्रतिक्रिया होगी "जब हम उन चीजों को जानने का नाटक कर रहे हैं जिन्हें हम नहीं जानते हैं, तो हम इसे 1 मिलियन क्यों नहीं बनाते? यह अच्छा और बड़ा है।"
नाथन लॉन्ग

12
मुझे विश्वास नहीं हो रहा है कि इसे 90+ वोट मिले। मैं अपने सभी उत्तरों में यूनिकॉर्न डालना शुरू करूंगा।
मोरों

38

बस वाक्यों में समीकरणों को फिर से लिखना:

"यदि आप अज्ञात मूल्य से शुरू करते हैं और आप 150 के साथ समाप्त होते हैं, तो प्रतिशत में क्या बदलाव होता है ?"

तथा

"यदि आप 85 से शुरू करते हैं और आप कुछ अज्ञात मूल्य के साथ समाप्त होते हैं तो क्या प्रतिशत परिवर्तन होता है ?"

बेशक, दोनों का जवाब है, "इसकी गणना नहीं की जा सकती, क्योंकि गणना के महत्वपूर्ण टुकड़ों में से एक गायब है।" यही n नल ’का सार है।

फिर शून्य के साथ समान वाक्यों का पता लगाना आसान है, और देखें कि वे मौलिक रूप से कैसे भिन्न हैं:

"यदि आप 0 से शुरू करते हैं और आप 150 के साथ समाप्त होते हैं, तो क्या प्रतिशत परिवर्तन होता है?"

तथा

"यदि आप 85 से शुरू करते हैं और आप 0 से अंत करते हैं, तो प्रतिशत में क्या बदलाव होता है?"

हालाँकि उत्तर बहुत मायने नहीं रखते (शून्य के साथ), कम से कम इसकी गणना की जा सकती है । अशक्त होने के साथ, गणना भी संभव नहीं है


2
+1 "अज्ञात" निश्चित रूप से एक महान व्याख्या है, और वाक्यों में व्याख्या करना आसान है।
स्कॉट रिपे

@ScottRippey - मेरा तर्क है कि unknownयह मानती नहीं है क्योंकि NULLयह वास्तव में मौजूद नहीं है क्योंकि प्रतिशत के मामले में वास्तव में कोई संख्यात्मक मूल्य (प्रतिशत) या अन्यथा प्रतिशत मूल्य नहीं है।
रामहाउंड

2
@ रामहाउंड यहाँ है कि मैं मूल प्रश्न के संदर्भ में क्या प्राप्त करने की कोशिश कर रहा था: "अज्ञात" कित्स के उत्तर में "प्लेसहोल्डर" का प्रतिनिधित्व करता है, जो मुझे लगता है कि एक महान विवरण है। एक गैर-प्रोग्रामर बॉस के लिए, इसका मतलब है कि वहाँ कहीं बाहर एक मूल्य हो सकता है, लेकिन हमारे पास यह नहीं है (डेटाबेस, सिस्टम, फॉर्म, आदि में)। क्या कोई मूल्य है? हमारे पास जानने के लिए पर्याप्त जानकारी नहीं है, एक रास्ता या कोई अन्य। डेटा गायब है। यह कुछ भी नहीं की तुलना में एक अलग अर्थ है , जो वहाँ होने के लिए कोई मूल्य नहीं है । चर्चा के संदर्भ के आधार पर, या तो स्पष्टीकरण सही हो सकता है।
एरिक किंग

20

जब आपसे बॉस से बात की जाती है, तो बस 0शून्य और शून्य के लिए उपयोग करें ?। यह सही ढंग से कैप्चर करता है कि यह किसी चीज़ के लिए प्लेसहोल्डर है लेकिन आपको नहीं पता कि यह क्या है।


? शानदार, सरल, और स्पष्ट रूप से लोगों के लिए अवधारणा को व्यक्त करता है।
नैलारो

12

इस बारे में कैसा है:

  • 0 "एक खाली बोतल में कितना तरल है?" का जवाब है।
  • NULL "खाली बोतल की सामग्री क्या है?" का उत्तर है।

या यदि आप एक निःसंतान व्यक्ति की कल्पना करते हैं:

  • उनके बच्चों की संख्या है 0
  • उनका सबसे पुराना बच्चा है NULL

मूल अंतर यह है कि 0औसत दर्जे की मात्रा के बारे में है, जबकि NULLअस्तित्व के बारे में है। एक मात्रा होने के नाते, किसी चीज़ का0 प्रतिनिधित्व करता है , यानी एक मात्रा, यानी 0बहुत कुछ 0.000000001एक मात्रा का प्रतिनिधित्व करता है (हर दिन जीवन की समस्याओं में से एक वास्तव में अविभाज्य रूप से करीब है 0)। इसके विपरीत कुछ भी नहींNULL दर्शाता है । वास्तव में करीब कुछ भी नहीं है । किसी भी चर (और अभिव्यक्ति) मूल्य या तो कुछ है।NULLNULL


8

यही कारण है कि मैं हमेशा इसे सफलतापूर्वक समझाता हूं:

0 नंबर 0 है।

नाल निर्वाण है, कुछ भी नहीं है, नाडा, नियामत, गैर-मौजूदगी, अनुपस्थिति।

NULL पर परिभाषित अरिथमेटिकल ऑपरेशन हमेशा NULL का परिणाम देते हैं।

... अब तक मेरे लिए काम किया।


8
NULL दुख का पूर्ण समाप्ति है? ओह! मुझे लगता है कि मेरे कोड में अधिक उपयोग होगा।
क्लाउडीयू

हां, 0 एक संख्या है। अशक्त किसी भी संख्या का अभाव है ।
माइकल दुरंत

7

आप सवाल क्यों नहीं पूछेंगे "NULL के बराबर मूल्य क्यों है?" इससे आपको यह समझाने में मदद मिल सकती है कि गणना अमान्य क्यों हो सकती है।

यदि आप समय-समय पर अद्यतन कर रहे थे, और नया मान स्वयं मौजूद नहीं था (उदाहरण के लिए नेटवर्क त्रुटि), तो इसका मतलब हो सकता है कि गणना प्रदर्शन नहीं की जा सकती है और पुराना प्रतिशत मान बासी है। आप एक संकेत दिखाना चाहते हैं कि आपके पास बासी डेटा है, अपडेट अपेक्षित रूप से नहीं हुआ है।

गायब पुरानी वैल्यू के लिए भी यही बात सही हो सकती है, लेकिन मेरे पास यह समझने में कठिन समय है कि एक पुराना मूल्य कैसे खो सकता है (जब तक कि यह पहली गणना नहीं है, या बैटरी मर गई और डेटा खो गया।) लेकिन आप चाहते हो सकते हैं। एक प्रतीक दिखाएं जो इस स्थिति को भी इंगित करता है।

किसी भी स्थिति में आप ऐसा नहीं करना चाहते:

यहाँ छवि विवरण दर्ज करें

छवि स्रोत


+1। यह उत्तर है: समझाएं कि मूल्य शून्य क्यों है। यदि आप इसे नहीं समझा सकते हैं, तो आपके पास एक बग है।
मार्कज

5

OldValue=Null आप पुराने मूल्य को नहीं जानते हैं इसलिए अंतर अज्ञात है (अशक्त)

OldValue=0 आप पुराना मूल्य जानते हैं, यह 0 है, इसलिए अंतर इन्फिनिटी (अशक्त) है

अगर इन दोनों के बीच अंतर करना महत्वपूर्ण है, तो बस पुराने मूल्य को संग्रहीत करें PreviousValueऔर इसे कहीं प्रदर्शित करें।


नीचे दी गई टिप्पणी के आधार पर संपादित करें:
मैं उनसे केवल यह पूछूंगा कि वह निम्नलिखित स्थितियों में क्या करना चाहते हैं और उनमें से प्रत्येक के उदाहरणों को दिखाते हैं। तब और उससे पूछें "आप इन के लिए क्या मूल्य प्रदर्शित करना चाहते हैं?"

किसी भी तरह से इसे कंप्यूटर का मुद्दा न बनाएं .. यह एक व्यावसायिक प्रश्न है।


मुझे नहीं लगता कि मेरे बॉस समझ पाएंगे कि आपने क्या कहा :)
OO

इसे व्यावसायिक प्रश्न के रूप में जानने के लिए +1। बॉस संभावना वैसे भी कार्यान्वयन के बारे में परवाह नहीं करता है।
एलन गाउन

4

मुझे 'रिक्त' के साथ बहुत सफलता मिली है।

उन लोगों के साथ जो मूल बीजगणित (या सरल विचार जिसे आप एक प्रतीक के लिए एक मूल्य प्रदान कर सकते हैं) को समझते हैं, एक 'रिक्त' मान का विचार बहुत सीधा और शून्य मान से अलग प्रतीत होता है।


4

NULL एक मान नहीं है, इसकी कमी है। शून्य अभी भी एक मूल्य है। (भले ही यह उन मामलों में उपयोग किया जा सकता है जहां यह पूरी तरह से मूल्यांकन नहीं किया जा सकता है।

सादृश्य द्वारा (गैर टेकीज़ को समझाने का एक अच्छा तरीका;

if I have three apples then I subtract three apples how many apples do I have? is 0

If I have a bag of apples and I never look in the bag, how many apples do I have? is null

यद्यपि इस मामले में दोनों का एक ही मूल्य हो सकता है (आपके लैंगेज के आधार पर) वे वैचारिक रूप से बहुत भिन्न होते हैं


4

वास्तव में यह प्रासंगिक नहीं है कि आपका बॉस एक प्रोग्रामर है या नहीं। मुद्दा एक वैचारिक एक तकनीकी एक नहीं है।

उसे यह मानने के लिए कहें कि आपको उठना पड़ा। आपका पुराना वेतन 175k था, लेकिन आपका नया वेतन अज्ञात है। फिर उससे पूछें - आपको कितना प्रतिशत बढ़ा?

यदि वह अंकगणित में अक्षम है, तो उसे प्रक्रिया के माध्यम से चलाएं जब तक कि वह यह नहीं देख सकता कि लापता लिंक कहां है।


3

मैं सिक्का फ्लिप का उपयोग करता हूं। सच्चा सिर है, झूठे पूंछ है, और एक हाथ दूसरे सिक्के पर छिपा हुआ है जो कि नल है। यदि आप जानते हैं कि सिक्का प्रमुख है, तो इस प्रश्न का उत्तर देना बहुत आसान है "इस मूल्य के विपरीत क्या है?"। एक हाथ से सिक्का छिपाना बहुत आसानी से पता चलता है कि व्यक्ति जवाब दे सकता है कि क्या आप उन्हें वर्तमान मूल्य देखने देंगे, लेकिन जब से आप नहीं करेंगे, वे आपको जवाब नहीं दे सकते। वे सब जानते हैं, आपके हाथ में एक सिक्का भी नहीं है!


1

एक क्षेत्र में, NULL का कहना है कि मुझे कोई पता नहीं है; यहां कोई डेटा नहीं है - इसके रिक्त के बराबर। शून्य (0) का कहना है कि मुझे पता है कि इस क्षेत्र का मूल्य ठीक 0 होना चाहिए, उदाहरण के लिए, पूर्णांक वह संख्या एक से कम है।

उदाहरण के लिए, मेरे पास एक कागज़ की एक शीट हो सकती है जो मैं कंप्यूटर सिस्टम में टाइप कर रहा हूं जो कहता है कि प्रत्येक ग्राहक कितना बकाया है। ग्राहक A का $ 50 बकाया है, ग्राहक B का बकाया $ 0 है, और ग्राहक C के पास NULL (????) है, क्योंकि ग्राहक C के उल्लू की संख्या को कम कर दिया गया था (किसी ने इसके ऊपर और इसके अपठनीय पर एक काली रेखा खींच दी थी; या उनका कहना था कि यह नोट था) उनका बिल अभी तैयार नहीं है)। मैं आराम से कह सकता हूं कि ग्राहक B का बकाया $ 0 है, और आराम से कह सकते हैं कि मुझे नहीं पता कि ग्राहक C का क्या बकाया है। मैं ग्राहक C $ 0 का शुल्क नहीं लेना चाहता (क्योंकि वे पैसा दे सकते हैं)।


1

यह मानते हुए कि हम भाषा-विशिष्ट सामग्री में शामिल नहीं हो रहे हैं:

#define NULL 0

अंतर यह है कि 0 एक संख्यात्मक मान है जहां NULL नहीं है। यह ग्राफ पेपर की शीट पर एक खाली सेल की तरह है। एक सेल में "0" हो सकता है, लेकिन यह खाली भी हो सकता है। नल अभी भी एक मूल्य है, लेकिन आपने इसे विशेष माना है। उदाहरण के लिए यदि आपकी कोशिकाएँ अब वर्ण थीं, तो आप रिक्त सेल का उपयोग एक स्थान के रूप में कर सकते हैं और एक शून्य सेल अब संभव नहीं है जब तक कि आप विशेष स्थिति होने के लिए वर्ण बनाते या बनाते नहीं हैं।

अशक्त साधन का अर्थ है कि डेटा की व्याख्या कैसे की जाती है:

  • अशक्त डेटा का मतलब हो सकता है "अभी तक प्रदान नहीं किया गया", और फिर से मूल्य की जांच करने से पहले एक कार्यक्रम प्रतीक्षा करेगा।
  • डेटा एक शून्य मान नहीं कर सकता है। इसे पूर्णांक के रूप में सख्ती से व्याख्या किया जा सकता है, और गैर-पूर्णांक मान असंभव होगा।
  • आम तौर पर स्मृति में, पता 0 को शून्य के रूप में व्याख्या की जाती है, जिसका अर्थ है कि इसका उपयोग नहीं किया जा सकता है।

NULL == 0जब आप C एट अल में अशक्त बिंदुओं के साथ काम कर रहे हों तो ठीक काम करता है। यदि आप अपने गैर-प्रोग्रामर बॉस को उनके कोड को दिखाकर विचार समझाने की कोशिश कर रहे हैं, तो आप इसे गलत कर रहे हैं।
तुललो_x86

1

मैं NVL जांच चलाऊंगा और यदि कोई पैरामीटर NULL है तो मैं स्ट्रिंग "N / A" ("0" नहीं लौटाऊंगा क्योंकि यह अभी सच नहीं है!)।

यह कुछ ऐसा है, जो प्रबंधक के दृष्टिकोण से, अधिक पेशेवर दिखाई देगा, फिर NULL मान प्रदर्शित करता है कि आपके पास किस तरह का बग है (जो आप निश्चित रूप से नहीं करते हैं - लेकिन यह एक गैर-इंजीनियर को देखने का तरीका है) ।


+1 बॉस और सभी उपयोगकर्ता परवाह नहीं करते हैं कि अशक्त का क्या अर्थ है। वे मूल्य का एक सार्थक विवरण चाहते हैं। अगर कोई पुराना या नया मूल्य नहीं है तो कोई बदलाव नहीं है।
jqa

1

हमारे पास पुराना मूल्य है, लेकिन नया मूल्य नहीं है।

उनके दिमाग में ऐसा लगता है, एक नया मूल्य नहीं होने का मतलब यह नहीं है कि यह अज्ञात है; यह पुराने मूल्य के समान है। आप उसे समझे बिना उसके अनुसार कोड कर सकते हैं क्योंकि उसके दिमाग में, यह कभी अशक्त नहीं है।

NULLs के बारे में बहस करने के बजाय, यह सुनिश्चित करें कि यह अन्य समस्याएं पैदा नहीं करता है। डेटा होने के कौन से नियम बहुत पुराने हैं? जब कोई 0% परिवर्तन देखता है, तो क्या वे पैनिक बटन दबाते हैं? क्या यह समय के साथ किसी भी विश्लेषण या समुच्चय को तिरछा करेगा?

मुझे नहीं लगता कि उसे एक कंप्यूटर प्रोग्रामिंग ट्यूटोरियल की आवश्यकता है, लेकिन यह अच्छा होगा यदि वह जानता है कि एक अशक्त क्या था और इसके बजाय सही सवाल पूछा।


1

यदि old valueसमीकरण शून्य है, तो समीकरणों का परिणाम शून्य होना चाहिए। ऐसा इसलिए है क्योंकि अशक्त संख्या नहीं है, इसका मतलब अज्ञात मूल्य है। इसलिए गणना आगे नहीं बढ़ सकती।

यदि old value = 0आप शून्य से विभाजित नहीं कर सकते हैं तो बेशक आपका समीकरण भी विफल हो जाता है।

आमतौर पर आप इन चीजों को एक केस स्टेटमेंट के साथ संभालते हैं जो आपको वह रास्ता दिखाएगा जो आप दिखाना चाहते हैं। इसलिए यदि आप परिणाम को शून्य के रूप में दिखाना चाहते हैं जब आप गणना नहीं कर सकते हैं (जैसा कि एक शून्य या शून्य के साथ, तो आप एक केस स्टेटमेंट कुछ ऐसा करेंगे

case when [old value] = 0 then null 
else 100 * (([old value] - [new value]) /[old value]) 
end

उपयोगकर्ताओं के दृष्टिकोण से पुराने मान के मामले में 0 और NULL के अंतर में समानता नहीं होगी (उदाहरण के लिए यदि मुझे किसी टेक्स्टबॉक्स में मान दिखाना है)। प्रतिशत परिवर्तन में, कोई भी मूल्य शून्य या शून्य के समान नहीं हो सकता है, है ना?
OO

प्रतिशत में परिवर्तन शून्य का अर्थ है कि विशेष रूप से कोई परिवर्तन नहीं हुआ था (पुराने और नए मूल्य बिल्कुल समान थे), शून्य का मतलब है कि परिवर्तन था लेकिन प्रतिशत निर्धारित नहीं किया जा सकता है। यही कारण है कि आप शायद शून्य परिणाम के रूप में दिखाना नहीं चाहते हैं क्योंकि यह भ्रामक है।
HLGEM

1

अन्य मूल्यों की तुलना में अशक्त प्रतीक के यांत्रिक पहलुओं को समझाने के लिए उपमाओं पर कुछ महान चर्चा; हालाँकि, इस सवाल का क्रेज शायद प्रबंधक के दृष्टिकोण से पर्याप्त रूप से यूआई में परिणामों को व्यक्त करने के लिए, उनकी विशिष्ट समस्या के रूप में लागू किए गए पेरिकेंट परिवर्तित सूत्र की सार्थक सीमाओं का प्रतिनिधित्व करते हुए, अधिक विशिष्ट रूप से उत्तर दिया जा सकता है, जो मुझे विश्वास है।

प्रतिशत बदल जाने के मामले में, दो चीजों का प्रतिनिधित्व करने की आवश्यकता है: जब किसी चीज को पहले मापा जाता है, और जब किसी विशेष पहलू के लिए कुछ भी नहीं मापा जाता है।

जब कुछ पहले मापा जाता है (oldValue === NULL), प्रतिशत परिवर्तन लागू नहीं होता है; और स्पष्ट रूप से ध्यान दिया जाना चाहिए कि यह उस माप चक्र के लिए प्रारंभिक माप है।

जब कुछ भी नहीं मापा जाता है (newValue === NULL), तो वास्तविक परिणामी प्रतिशत परिवर्तन वास्तव में शून्य (पिछले चक्र में गैर-शून्य मान) का मूल्य है। शून्य आमतौर पर इस मामले में सूत्र का उपयुक्त उत्तर है। इस सबसे हालिया चक्र में कोई माप नहीं था, और इस प्रकार कोई मापा गया परिवर्तन नहीं था। इसका मतलब यह नहीं होना चाहिए कि यह नहीं बदला, बस उस पहलू के संबंध में कुछ भी मापा, रिकॉर्ड या संचारित नहीं किया गया था।


0

निश्चित रूप से वे "एन / ए" एक फॉर्म पर डालने की अवधारणा को समझते हैं जब उनका मतलब "उपलब्ध नहीं" होता है। उदाहरण के लिए, प्रश्न का उत्तर देने के लिए, "बेंजामिन फ्रैंकलिन कितने साल का है?" उत्तर 0 और N / A स्पष्ट रूप से भिन्न हैं (और बाद वाला सही है)। इसी प्रकार उत्तर 0 और NULL भिन्न हैं।


0
  • NULL मान का अभाव है।
  • -Zero- एक वैल्यू है, और वह वैल्यू है -Zero-।

अगर मुझे किसी को इन अवधारणाओं को स्पष्ट करना था, तो मैं दो बक्से खींचूंगा।

  • एक खाली बॉक्स NULL का प्रतिनिधित्व करेगा।
  • संख्या -Zero वाला एक बॉक्स- इसमें प्रतिनिधित्व होगा -Zero-।

0

0 और शून्य के बीच का अंतर बैंक खाते के साथ 0 शेष राशि और बैंक खाता नहीं होने के बीच के अंतर की तरह है।


-1

यह संकेत के साथ सबसे अच्छा समझाया गया है।

var a -> [0] // variable a is initialized and set to hold 0
var b -> [123asgeb0] // variable b is initialized but not set, memory is pointed to, but holds whatever was there last

इस वजह से, यदि आपकी भाषा आपके लिए NULL चर का ट्रैक नहीं रखती है, तो आप जो पहले से ही थे, उसका उपयोग करेंगे । इससे ओवरफ्लो, स्टैक करप्शन, या अन्य खराब साइड इफेक्ट हो सकते हैं।

भाषा तो करता है शून्य चर का ट्रैक रखने, तो यह इस निपटने के लिए एक ने कहा मामला होगा। IE शून्य के रूप में पूर्ण व्यवहार करते हैं, अपवाद को फेंक देते हैं, शून्य के रूप में मानते हैं, आदि।

अपने बॉस के लिए प्रदर्शन करने के लिए, उपयोग किए गए कागज के कुछ टुकड़े प्राप्त करें।

  1. 2 गिलास लें, और एक सफेद छड़ी लें।
  2. पृष्ठ के एक भाग को श्वेत करें, और एक शून्य लिखें
  3. उस पर एक गिलास रखो (यह एक वार है)
  4. पृष्ठ के दूसरे भाग पर एक ग्लास रखें (यह var b है)

-1

इस प्रश्न पर विभिन्न प्रकार के उत्तरों को देखते हुए, यह निष्कर्ष निकाला जा सकता है कि हम पहले से ही क्या जानते हैं: अशक्त का अर्थ बहुत सी बातें हो सकता है।

या तो इसका मतलब है कि डेटा है:

  • ज्ञात नहीं होने के लिए,
  • ज्ञात नहीं होने के लिए,
  • अमान्य (जैसे त्रुटि मापना),
  • सुलभ नहीं है (जैसे सुरक्षा-वार),
  • ज्ञात हो, लेकिन वर्तमान डेटा प्रोसेसिंग के लिए अप्रासंगिक है
  • डेटा अनंत है (अक्सर डेटाबेस में उपयोग किया जाता है)
  • शायद 10 और चीजें, जिनके बारे में मैंने नहीं सोचा था

इसके लिए, और कई अन्य कारणों से, डेटासट्रक्चर को परिभाषित करने के लिए अक्सर उपयोगी होता है जो शून्य मान (जैसे एक वैकल्पिक वर्ग) का अर्थ बताता है।


-2

इस पर -1 व्यक्ति का कोई सानी नहीं है। FWIW मैं खुद एक आर्किटेक्ट हूं।

अशक्ति शून्यता है। किंवदंती के अनुसार नल के 17 स्वाद (संभव अर्थ) हैं जिनमें "आई डोंट नो", "वे नहीं कहते", और "किसी ने इसे तोड़ दिया"। कोई भी नहीं जानता कि डीबीए और आर्किटेक्ट्स को छोड़कर, जो केवल प्रोग्रामर पर अंधेरे पीछे के कमरे से हाथ धोते हैं। वे मालिकों पर विनम्रता से मुस्कुराते हैं और अपनी जटिल चिंता के साथ गहरी चिंता में अपनी जीभ को हिलाते हैं जो ऐसा होना चाहिए, और गहराई से महत्वपूर्ण है लेकिन बहुत स्पष्ट नहीं है - क्योंकि बॉस डीबीए और आर्किटेक्ट को महत्वपूर्ण प्रदर्शन देते हैं। एक पे चेक। यहाँ तक कि नल भी कभी अपने रहस्य नहीं बताते। वे खाली के ब्लैक होल हैं। एक शून्य कभी दूसरे शून्य के बराबर नहीं होता है क्योंकि प्रत्येक खालीपन समानता से खाली होता है और यह स्वीकार करने से इनकार करता है कि यह सब खाली नहीं हो सकता है। यह निश्चित रूप से अनुमान है क्योंकि कोई भी स्वाभिमानी अशक्त वास्तव में इसे स्वीकार नहीं कर सकता है। कभी-कभी नल भारी मात्रा में वास्तविक डेटा को चूसते हैं ()। इसे बग कहा जाता है, लेकिन वास्तव में प्रोग्रामर के दिमाग की रिक्तता केवल शून्य के बारे में भूल जाती है। तो आप देखते हैं कि वे कभी-कभी प्रजनन करते हैं। लेकिन कैसे या क्यों हमेशा जल्दी भूल जाता है। () कभी-कभी एक अशक्त या उसके चचेरे भाई की निशानी है, लेकिन विरोधाभास शायद ही कभी एक बग।

शून्य किसी वस्तु की एक निश्चित मात्रा है। शून्य शून्य की तुलना में अधिक खुश हैं। शून्य केवल आलसी हैं और परिणाम के लिए बहुत कुछ नहीं जोड़ते हैं।

उबाऊ के लिए, बहुत पुराना सटीक उत्तर नल "लापता जानकारी और अनुपयुक्त जानकारी" का प्रतिनिधित्व करता है, EF Codd, SQL का निर्माता।

Codd ने 3rd नॉर्मल फॉर्म का भी आविष्कार किया जो प्रारंभिक कंप्यूटर यातना के रूप में युवा कंप्यूटर वैज्ञानिकों के दिमाग में लागू होता है। एक बार महारत हासिल करने के बाद यह पूरी तरह से अस्वीकृत हो जाता है। ऑब्जेक्ट ओरिएंटेड डिज़ाइन पेश किए जाने पर ऐसी ही चीजें होती हैं। और हम इसे अकेले छोड़ने में कभी खुश नहीं होते हैं, इसलिए साथ-साथ फ्रॉडिंग फ्राय में जोड़ने के लिए प्रतिबाधा बेमेल आता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.