क्या ऐसा कोई तरीका है जिससे मैं मानक या कस्टम सांख्यिक प्रारूप स्ट्रिंग को हमेशा संकेत देने के लिए निर्दिष्ट कर सकता हूं, यह + ve या -ve हो (हालाँकि यह शून्य के लिए क्या करना चाहिए, मुझे यकीन नहीं है!)
क्या ऐसा कोई तरीका है जिससे मैं मानक या कस्टम सांख्यिक प्रारूप स्ट्रिंग को हमेशा संकेत देने के लिए निर्दिष्ट कर सकता हूं, यह + ve या -ve हो (हालाँकि यह शून्य के लिए क्या करना चाहिए, मुझे यकीन नहीं है!)
जवाबों:
हाँ तुम कर सकते हो। सशर्त स्वरूपण है। MSDN में सशर्त स्वरूपण देखें
उदाहरण के लिए:
string MyString = number.ToString("+0;-#");
जहां एक अर्धविराम द्वारा अलग किया गया प्रत्येक खंड सकारात्मक और नकारात्मक संख्याओं का प्रतिनिधित्व करता है
या:
string MyString = number.ToString("+#;-#;0");
यदि आप शून्य को प्लस चिन्ह नहीं रखना चाहते हैं।
+#;-#
, मान 0 के लिए मुझे सिर्फ "+" मिलता है, कोई वास्तविक 0. नहीं है। मेरे लिए मैं 0 को "+0" के रूप में प्रकट करना चाहता हूं, इसलिए यह काम करता है +#;-#;+0
:।
''
बढ़िया काम करेंगे! इसे देखो Changes.ToString("'('#' ▲)';'('#' ▼)';''")
:! इसने मुझे बहुत समय और सैकड़ों if
बयान दिए! :)
+0;-#
इसके बजाय +#;-#;+0
यह उत्तर मेरे लिए वास्तव में भ्रामक था।
आप स्ट्रिंग में फ़ॉर्मेट स्ट्रिंग्स का भी उपयोग कर सकते हैं। फ़र्मैट (); प्रारूप स्ट्रिंग को एक बृहदान्त्र के साथ सूचकांक से अलग किया जाता है (':')
var f = string.Format("{0}, Force sign {0:+#;-#;+0}, No sign for zero {0:+#;-#;0}", number);
संख्या {+1, -1, 0} के लिए यह देता है:
1, बल चिह्न +1, शून्य +1 के लिए कोई संकेत नहीं
, बल चिह्न -1, शून्य -1
0 के लिए कोई संकेत नहीं , बल चिह्न +0, शून्य पर कोई संकेत नहीं।
आप एक string.Format
ही परिणाम प्राप्त करने के बजाय एक प्रक्षेपित स्ट्रिंग का उपयोग कर सकते हैं :
var f = $"{number}, Force sign {number:+#;-#;+0}, No sign for zero {number:+#;-#;0}";
+#;-#
मान 0 के लिए प्रारूप का वास्तविक परिणाम है
+0;-#
:। :)
+#;-#;+0
से अधिक +#;-#
के रूप में इस यह स्पष्ट करता है कि 0 +0 के रूप में स्वरूपित किया जाएगा
अन्य उत्तरों के विपरीत ऐसा लगता है कि यदि आप +1 प्राप्त करना चाहते हैं, तो -1, +0 (तर्क 1, -1, 0 के लिए) आपको प्रारूप का उपयोग करने की आवश्यकता है:
String.Format("{0:+#;-#;+0}", 0)); // output: +0
या
String.Format("{0:+0;-#}", 0)); // output: +0
यदि आप इसका उपयोग करते हैं तो +#;-#
यह 0 के लिए सिर्फ +
(नहीं +0
) प्रदर्शित करेगा ।
"#" कस्टम विनिर्देशक ( https://msdn.microsoft.com/en-us/library/0c899ak8.aspx पर )
ध्यान दें कि यह निर्दिष्टक कभी भी शून्य को प्रदर्शित नहीं करता है जो महत्वपूर्ण अंक नहीं है, भले ही स्ट्रिंग में शून्य एकमात्र अंक हो। यह शून्य को केवल तभी प्रदर्शित करेगा जब यह प्रदर्शित होने वाली संख्या में महत्वपूर्ण अंक हो।
कृपया यह भी ध्यान रखें कि यदि आपको किसी भी दशमलव सटीकता की आवश्यकता है, तो आपको इसे इस तरह निर्दिष्ट करना होगा:
String.Format("{0:+0.##;-#.##}", 0)); // output: +0
या, यदि आप शून्य को हमेशा दिखाने के लिए नहीं चाहते हैं, तो जैसे:
String.Format("{0:+0.00;-#.00}", 0)); // output: +0.00
किसी भी प्रकार की संख्यात्मक अभिव्यक्ति के लिए:
+###,###,###,###,###,###,###,###,###,##0.###,###,###,###,###,###,###,###,###,###;-###,###,###,###,###,###,###,###,###,##0.###,###,###,###,###,###,###,###,###,###;0
तीन मामलों के लिए तीन भागों का उपयोग करें: सकारात्मक; नकारात्मक; शून्य
उदाहरण के अन्य पहलू:
शून्य पर हस्ताक्षर नहीं है। आप इसे कुछ भी दिखा सकते हैं, जैसे "शून्य"।
दशमलव बिंदु से पहले एक से कम पूर्ण मूल्यों का एक अग्रणी 0 होता है। स्वाद के लिए समायोजित करें।
अंकों की संख्या सबसे बड़े और सबसे छोटे निरपेक्ष दशमलव मानों के लिए है। स्वाद के लिए समायोजित करें।
दशांश बिंदु वर्ण संस्कृति-विशिष्ट है। .NET विकल्प।
समूहीकरण विभाजक वैकल्पिक हैं। चरित्र संस्कृति-विशिष्ट है। .NET विकल्प। (स्थिति भी संस्कृति-विशिष्ट हैं लेकिन यह केवल आपके प्रारूप स्ट्रिंग द्वारा नियंत्रित होती है।) आप प्रारूप के लिए विशेष वर्णों को छोड़कर किसी अन्य वर्ण का भी उपयोग करते हैं (जिसमें शामिल हैं; # 0)।
मैं टिप्पणी नहीं कर सकता तो मैं यहाँ एक उत्तर (पागल प्रतिष्ठा प्रणाली ....)
आप संख्या का उपयोग कर सकते हैं। String ("+ 0; - #") बहुत अच्छी तरह से UTC स्ट्रिंग टाइमफ़ॉर्मैट का उत्पादन करने के लिए
यहां PowerShell कोड दिखाया गया है
"$([System.DateTime]::Now.ToString('HH:mm:ss.fff'))$($([System.TimeZoneInfo]::Local.GetUtcOffset([System.DateTime]::Now).TotalMinutes.ToString('+0;-#')))"
साभार @gcores https://stackoverflow.com/users/40256/gcores