0.ToString ("#। ##") 0.00 या कम से कम 0 के बजाय एक रिक्त स्ट्रिंग क्यों लौटाता है?


114

0.ToString("#.##")खाली स्ट्रिंग क्यों लौटाता है? यह नहीं होना चाहिए 0.00या कम से कम 0 ?

जवाबों:


185

#स्ट्रिंग प्रारूप में संकेत मिलता है कि मूल्य वैकल्पिक है। यदि आप आउटपुट प्राप्त करना चाहते हैं, 0.00तो आपको निम्नलिखित की आवश्यकता होगी:

0.ToString("0.00");

कस्टम सांख्यिक स्वरूपों के लिए यहां देखें जो इस विधि से पारित किए जा सकते हैं।


3
एक बात अभी भी मुझे भ्रमित करती है कि परिणाम 0. क्यों नहीं है। क्योंकि 0 वैकल्पिक नहीं है। खाली समझ में आता है?
user960567

135

क्योंकि एक प्रारूप स्ट्रिंग में, #वैकल्पिक वर्ण प्लेसहोल्डर को सूचित करने के लिए उपयोग किया जाता है; यदि इसका उपयोग केवल संख्या का प्रतिनिधित्व करने के लिए किया जाता है ।

यदि आप इसके बजाय ऐसा करते हैं: 0.ToString("0.##");आपको मिलता है:0

दिलचस्प है, अगर आप ऐसा करते हैं: 0.ToString("#.0#");आपको मिलता है:.0

यदि आप सभी तीन अंक चाहते हैं 0.ToString("0.00");:0.00


टिप्पणियों से इस उत्तर के लिए, आपका तर्क लगता है,

इसे '0' दिखाना चाहिए, क्योंकि संख्यात्मक मान 0 होने पर कोई भी रिक्त स्ट्रिंग क्यों देखना चाहेगा?

प्रतिक्रिया सरल है: आपके पास यह विकल्प है कि आप इसे कैसे प्रदर्शित करना चाहते हैं। कस्टम प्रारूप के तार क्या हैं। आपने बस अपनी आवश्यकताओं के लिए गलत प्रारूप स्ट्रिंग चुना है


20

डिजिट प्लेसहोल्डर के बारे में प्रलेखन के अनुसार ।

यदि स्वरूपित किया जा रहा है, उस स्थिति में एक अंक है जहां प्रारूप स्ट्रिंग में '#' दिखाई देता है, तो उस अंक को परिणाम स्ट्रिंग में कॉपी किया जाता है। अन्यथा, परिणाम स्ट्रिंग में उस स्थिति में कुछ भी संग्रहीत नहीं किया जाता है। यह विशेषांक '0' वर्ण को कभी प्रदर्शित नहीं करता है यदि यह महत्वपूर्ण अंक नहीं है, भले ही '0' स्ट्रिंग में एकमात्र अंक हो। यह '0' वर्ण प्रदर्शित करेगा यदि यह प्रदर्शित संख्या में एक महत्वपूर्ण अंक है। "##" प्रारूप स्ट्रिंग दशमलव के पूर्ववर्ती निकटतम अंक पर गोल होने का कारण बनता है, जहां हमेशा शून्य से दूर गोलाई का उपयोग किया जाता है। उदाहरण के लिए, "##" के साथ 34.5 का प्रारूपण करने से मूल्य 35 हो जाएगा।

यदि आप चाहते हैं कि ज़ीरो प्लेसहोल्डर का उपयोग करने के लिए शून्य प्रदर्शित हो

f स्वरूपित किया जा रहा मान उस स्थिति में एक अंक होता है जहाँ प्रारूप स्ट्रिंग में '0' दिखाई देता है, फिर उस अंक को परिणाम स्ट्रिंग में कॉपी किया जाता है। दशमलव बिंदु से पहले बाईं ओर '0' की स्थिति और दशमलव बिंदु के बाद सबसे दाहिने '0' अंकों की सीमा निर्धारित करता है जो हमेशा परिणाम स्ट्रिंग में मौजूद होते हैं।
"00" विनिर्देशक दशमलव के पूर्ववर्ती निकटतम अंक पर गोल होने का कारण बनता है, जहां हमेशा शून्य से दूर गोलाई का उपयोग किया जाता है। उदाहरण के लिए, "00" के साथ 34.5 का प्रारूपण करने से मूल्य 35 हो जाएगा।


2

इसे इस्तेमाल करे 0.ToString("#,##; #,##;0")

https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings#SectionSeparator

पहला खंड सकारात्मक मूल्यों पर लागू होता है, दूसरा खंड नकारात्मक मूल्यों पर लागू होता है, और तीसरा खंड शून्य पर लागू होता है।


-1

इसे इस तरह उपयोग करें:

0.ToString("#0.##")

0इसके बाद #आउटपुट वैल्यू को 0 पर सेट करना सुनिश्चित करेगा यदि वैल्यू 0 है तो यह वैल्यू प्रदर्शित करेगा। तो 0.0.ToString("#0.##")=0.00और10.ToString("#.##")=10.00

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