2011-11-28 16 views
41

मैं अल्पविराम/डॉट के बाद एक अंक के साथ एक स्ट्रिंग में दशमलव मान कैसे प्रारूपित कर सकता हूं और 100 से कम मानों के लिए अग्रणी स्थान कैसे बना सकता हूं?प्रमुख रिक्त स्थान के साथ स्ट्रिंग करने के लिए दशमलव मान प्रारूप

उदाहरण के लिए, 12.3456 का दशमलव मान " 12.3" के रूप में आउटपुट होना चाहिए एकल एकल स्थान के साथ। 10.011" 10.0" होगा। 123.123"123.1"

मैं एक समाधान है, कि मानक/कस्टम स्ट्रिंग स्वरूपण के साथ काम करता है के लिए देख रहा हूँ, यानि कि

decimal value = 12.345456; 
Console.Write("{0:magic}", value); // 'magic' would be a fancy pattern. 

उत्तर

70

यह पैटर्न {0,5:###.0} काम करना चाहिए:

string.Format("{0,5:###.0}", 12.3456) //Output " 12.3" 
string.Format("{0,5:###.0}", 10.011) //Output " 10.0" 
string.Format("{0,5:###.0}", 123.123) //Output "123.1" 
string.Format("{0,5:###.0}", 1.123) //Output " 1.1" 
string.Format("{0,5:###.0}", 1234.123)//Output "1234.1" 
+0

यह निश्चित रूप से करता है! धन्यवाद! :) –

+3

क्या इसके लिए कोई अच्छा संदर्भ है? यानी यदि मेरा उपयोग मामला थोड़ा अलग है तो प्रत्येक भाग क्या करता है। – tjrobinson

+4

@tjrobinson सब कुछ एमएसडीएन पर है: http://msdn.microsoft.com/en-us/library/0c899ak8.aspx और http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx – nemesv

5
value.ToString("N1"); 

बदलें अधिक दशमलव स्थानों के लिए संख्या है।

संपादित करें: छूटी गद्दी बिट

value.ToString("N1").PadLeft(1); 
+0

धन्यवाद। लेकिन पैडलिफ्ट का उपयोग मेरे मामले में काम नहीं करेगा, {0: ...} प्लेसहोल्डर के साथ स्ट्रिंग केवल दशमलव मान से अधिक टेक्स्ट होने जा रही है। –

+0

@ टाज़: आपको 'पैडलेफ्ट (5)' लिखना है। पैरामीटर पैड किए जाने के लिए स्ट्रिंग की कुल लंबाई है। – Jan

+0

@ जैकोब: आप 'string.Format()' का उपयोग क्यों नहीं कर सकते? – Jan

1

उपरोक्त सभी समाधान सिर्फ मामले किसी में, दशमलव के पूर्णांकन करेंगे
गोलाई के बिना समाधान के लिए खोज कर रहा है

decimal dValue = Math.Truncate(1.199999 * 100)/100; 
dValue .ToString("0.00");//output 1.99 
संबंधित मुद्दे