2009-10-19 19 views
14

पर अल्पविराम हज़ार विभाजक जोड़ें मेरे पास दशमलव संख्या है, 1234.500 कहें।दशमलव (.net)

मैं इसे प्रदर्शित करने के लिए 1,234.4

इम वर्तमान में एक डबल करने के लिए इसे परिवर्तित करने 'अनुगामी 0 के दूर करने के लिए करना चाहते हैं।

string.Format ("{0: 0,0}", 1234.500) दशमलव स्थान को हटा देता है, और अन्य स्वरूपण विकल्प दो दशमलव स्थानों का उपयोग करने लगते हैं।

कोई भी अंतर्दृष्टि प्रदान कर सकता है?

+0

संपादित करें, सिर्फ स्पष्टीकरण 1234.560 के लिए, मैं 1,234 के रूप में प्रदर्शित 1,234.56 – maxp

+0

आप करना चाहते हैं उम्मीद करेंगे *। * 5 ** सही? इसे प्रतिबिंबित करने के लिए पोस्ट संपादित करें। – Amarghosh

+0

क्या आप स्थानीय सिस्टम सेटिंग्स का उपयोग करना चाहते हैं या बस इसे इस तरह प्रारूपित करने के लिए आवेदन को मजबूर करना चाहते हैं? –

उत्तर

18

आप #,##0.00

string s = string.Format("{0:#,##0.00}", xx); 

की तरह एक कस्टम स्वरूपण का उपयोग करना चाहिए 1,234.50 उत्पादन होगा जब xx = 1234.5M
double को बदलने के बारे में भूल जाते हैं, जो वास्तव में मदद नहीं करेगा।

+0

किसी पीछे पीछे शून्य नहीं है – maxp

+1

फिर 1 या अधिक शून्य हटाएं: #, ## 0। या उन्हें वैकल्पिक बनाएं: #, ## 0. # –

+0

सहायता के लिए धन्यवाद। – maxp

0

क्या आपने यह कोशिश की है?

String.Format("{0:0,0.00}", 1234.560); 
+0

पीछे से शून्य से पीछे हटाना नहीं है - स्ट्रिंग.फॉर्मेट ("{0: 0,0.00}", 1234.5) – maxp

6

एक अन्य विकल्प:

decimal d = 1234.56m; 
string s = d.ToString("N"); // 1,234.56 
9

जैसा कि आप जानते हैं की है कि नेट में निर्मित सही ढंग से अपने आवेदन के प्रत्येक उपयोगकर्ता के क्षेत्रीय सेटिंग्स अनुसार संख्या फ़ॉर्मेट करने के लिए समर्थन करते हैं? उपयोगकर्ता की अपनी क्षेत्रीय सेटिंग्स का लाभ उठाने के लिए बेहतर हो सकता है (.NET ढांचे पहले से ही सभी सही सेटिंग्स जानता है)।

हालांकि, अगर आप एक विशेष क्षेत्रीय सेटिंग में प्रारूप संख्या के लिए आपके आवेदन को ठीक करना चाहते हैं, तो आप अभी भी अपनी पसंद और बल नेट की एक विशेष स्थान का उपयोग करने के leveage सकते हैं कि सभी स्वरूपण के आधार के रूप (न केवल संख्या) :

using System.Globalization; 
using System.Threading; 
... 
CultureInfo us = new CultureInfo("en-US"); 

और फिर

Thread.CurrentThread.CurrentUICulture = us; 

या सिर्फ

Console.WriteLine(d.ToString("c", us)); 

आप जानते हैं कि एक हज़ार विभाजक के रूप में अल्पविरामों के उपयोग ब्रिटेन और अमेरिका के लिए उपयुक्त है होना चाहिए, लेकिन यह कैसे हजारों अन्य देशों

"एक हजार और बीस-पांच में से 1,025 के रूप में प्रदर्शित किया जाता है में प्रदर्शित किया जाना चाहिए नहीं है संयुक्त राज्य अमेरिका में राज्य और 1.025। स्वीडन में, हज़ार विभाजक एक अंतरिक्ष "

MSDN has dedicated section इस विषय जो वे 'वैश्वीकरण' (यानी एक अच्छा खोज शब्द है कि अगर कभी आप और अधिक विस्तार नीचे का शिकार करने की जरूरत है) कॉल करने के लिए समर्पित है। यही कारण है कि पेज बताता है कि कैसे पाउंड चिह्न के उपयोग के पीछे शून्य (के रूप में एक पिछली टिप्पणी में हेंक Holterman ने सुझाव दिया) को हटाने के लिए एक अंकों प्लेसहोल्डर के रूप में काम करता है।

भी देखें Custom Numeric Format Strings

0

इस कोशिश करो!

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged 
     Try 
      TextBox1.Text = Format(CInt(TextBox1.Text), "#,#") 
      TextBox1.SelectionStart = TextBox1.Text.Length 
     Catch ex As Exception 

     End Try 

End Sub 
0

इस प्रयास करें:

string myNumber = string.Format("{0:#,0.00}", 1234.500); 

(मैं RDLC में यह देखा है रिपोर्ट)

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