2010-06-17 21 views
17

मुझे पता है कि अगर हम एक double एक दो दशमलव अंकों के रूप में प्रदर्शित करना चाहते हैं, एक बसएन दशमलव स्थानों की संख्या के साथ Double.ToString

public void DisplayTwoDecimal(double dbValue) 
{ 
    Console.WriteLine(dbValue.ToString("0.00")); 
} 

का उपयोग करना होगा लेकिन यह कैसे N दशमलव स्थानों के लिए इस विस्तार करने के लिए , जहां N उपयोगकर्ता द्वारा निर्धारित किया गया है?

public void DisplayNDecimal(double dbValue, int nDecimal) 
    { 
    // how to display 
    } 

उत्तर

48

एक्स दशमलव अंकों के लिए "एनएक्स" का उपयोग करें।

public void DisplayNDecimal(double dbValue, int nDecimal) 
{ 
    Console.WriteLine(dbValue.ToString("N" + nDecimal)); 
} 
+13

पक्ष एनएक्स का उपयोग करने का प्रभाव यह है कि संख्या हजारों विभाजकों के साथ स्वरूपित की जाएगी, यानी "1,234.5600" –

+5

यदि आप हजारों सेपरेटर नहीं चाहते हैं, तो आप 'Fx' – Aidiakapi

-4

मैं इस का प्रयोग करेंगे:

public string DisplayNDecimal(double dbValue, int nDecimal) 
{ 
    string decimalPoints = "0"; 
    if (nDecimal > 0) 
    { 
     decimalPoints += "."; 
     for (int i = 0; i < nDecimal; i++) 
      decimalPoints += "0"; 
    } 
    return dbValue.ToString(decimalPoints); 
} 

:)

यहाँ StringBuilder के साथ है (हालांकि शायद अधिक कुशल और निश्चित रूप से नहीं अधिक संसाधनों की आवश्यकता होगी)

public string DisplayNDecimal(double dbValue, int nDecimal) 
{ 
    StringBuilder decimalPoints = new StringBuilder("0"); 
    if (nDecimal > 0) 
    { 
     decimalPoints.Append("."); 
     for (int i = 0; i < nDecimal; i++) 
      decimalPoints.Append("0"); 
    } 
    return dbValue.ToString(decimalPoints.ToString()); 
} 
+2

का उपयोग कर सकते हैं क्यों प्रारूपकों में निर्मित नहीं ?? –

+1

ध्यान रखें कि यह सभी संस्कृतियों के लिए काम नहीं करेगा क्योंकि सभी संस्कृतियां दशमलव बिंदु के लिए अवधि का उपयोग नहीं करती हैं। –

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