2009-02-12 15 views
13

के साथ उपयोग करने के लिए एक कस्टम मुद्रा प्रारूप की आवश्यकता है I C# में String.Format ("{0: c}", कुछवृत्त) का उपयोग करने का प्रयास कर रहा हूं लेकिन आउटपुट को कॉन्फ़िगर करने के तरीके को समझने में कठिनाई हो रही है मेरी जरूरतों को पूरा करो। खाली स्ट्रिंग.फॉर्मैट

  • 1.00 आउटपुट से

    1. 0 आउटपुट $ 1.00
    2. लिए $ 10.00
    3. को 10.00 आउटपुट $ 1,000.00

    मैं $ 100.00

  • 1000.00 आउटपुट से 100.00 आउटपुट: यहाँ मेरी जरूरतों हैं मैंने String.Format ("{0: c}", कुछ मूल्य) की कोशिश की है, लेकिन शून्य मानों के लिए यह $ 0.00 का उत्पादन करता है जो मैं नहीं चाहता हूं। मैंने स्ट्रिंग.फॉर्मैट ("{0: $ 0,0.00; $ (0,0.00); #}", कुछ भी) की कोशिश की है, लेकिन 1.0 के लिए यह $ 01.00 आउटपुट करता है। String.Format ("{0: $ 0.00; $ (0.00); #}", कुछ मूल्य) ज्यादातर मामलों के लिए काम करता है, लेकिन जब कुछ मूल्य 1000.00 है तो आउटपुट $ 1000.00 है।

    क्या कोई प्रारूप है जो उपरोक्त सभी 5 मामलों में फिट होगा? मेरे द्वारा पढ़े गए सभी दस्तावेज केवल मूल बातें बताते हैं और इस प्रकार के परिदृश्य पर स्पर्श नहीं करते हैं। इस तरह

  • +0

    यदि (पैसा> 0) आउटपुट टेक्स्ट; – MrFox

    उत्तर

    19

    आप

    string.Format("{0:$#,##0.00;($#,##0.00);''}", value) 
    

    का उपयोग करते हैं आप शून्य मान और अन्य मूल्यों के लिए मिल जाएगा "" भी ठीक से प्रारूपित किया जाना चाहिए।

    +0

    यही वह है जिसे मैं ढूंढ रहा हूं। मैं एक पुनरावर्तक में यह स्वरूपण कर रहा हूं और कुछ सरल और संक्षिप्त था। – Notorious2tall

    +0

    एंड्रयू की प्रतिक्रिया भी काम करती है और अगर मैं इसे कोडबींड में कर रहा था तो मैं उसके समाधान के साथ जाता और स्ट्रिंग को समझने की कोशिश भी नहीं करता। फोर्मेट। लेकिन मैं सुरुचिपूर्ण समाधान की तलाश में था। ऐसा नहीं है कि कोई भी उस पर अपना मन पढ़ सकता था। :) – Notorious2tall

    +0

    मेरे द्वारा +1 .. उत्कृष्ट .. क्या आप कृपया यह बता सकते हैं कि यह कैसे काम करता है .. –

    4

    कोशिश कुछ:

    String currency = (number == 0) ? String.Empty : number.ToString("c"); 
    
    4

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

    public static string ToCurrencyString (this decimal value) 
    { 
        if (value == 0) 
        return String.Empty; 
        return value.ToString ("C"); 
    } 
    
    0

    Here's एक महान संदर्भ है, जो इस डेटा का सारांश दिया कि जो आपके लिए उपयोगी हो सकता है: http://blog.stevex.net/string-formatting-in-csharp/

    +1

    आपका लिंक टूटा हुआ है। –

    +0

    @ जेसेवेब, निश्चित – juan

    +0

    अभी भी तय नहीं है – Mutmatt

    0

    'सी' मुद्रा प्रारूपों महान जब तक आप एक खाली की जरूरत है

    // one way 
    string.Format("{0:$#,##0.00;($#,##0.00);''}", somevalue) 
    
    // another way 
    somevalue.ToString("$#,##0.00;($#,##0.00);''") 
    

    दूसरी तकनीक यदि आप कोड की है कि शैली की तरह है, और अधिक "धाराप्रवाह" लगता है: 0. के लिए दो तरीके हैं, एक ऊपर उल्लेख किया है, जो कि मैं का उपयोग करें कि आप 0 के लिए खाली देने के लिए इसी तरह के हैं (जैसाकि मैं करता हूं)।

    संबंधित मुद्दे