जवाबों:
String.Format("{0:n}", 1234); // Output: 1,234.00
String.Format("{0:n0}", 9876); // No digits after the decimal point. Output: 9,876
string.Format("{0:n0}", Double.Parse(yourValue));
मुझे यह सबसे सरल तरीका लगा:
myInteger.ToString("N0")
int number = 1000000000;
string whatYouWant = number.ToString("#,##0");
//You get: 1,000,000,000
,
हजारों विभाजक के रूप में अन्य पात्रों का उपयोग करती हैं , उदाहरण के लिए एक स्थान या यहां तक कि .
।
.
यदि आप संस्कृति विशिष्ट चाहते हैं, तो आप यह कोशिश करना चाहते हैं:
(19950000.0).ToString("N",new CultureInfo("en-US"))
= 19,950,000.00
(19950000.0).ToString("N",new CultureInfo("is-IS"))
= 19.950.000,00
नोट: कुछ संस्कृतियाँ ,
दशमलव का उपयोग करने के बजाय .
सावधानी बरतने का उपयोग करती हैं।
मानक प्रारूप, उनके संबंधित आउटपुट के साथ,
Console.WriteLine("Standard Numeric Format Specifiers");
String s = String.Format("(C) Currency: . . . . . . . . {0:C}\n" +
"(D) Decimal:. . . . . . . . . {0:D}\n" +
"(E) Scientific: . . . . . . . {1:E}\n" +
"(F) Fixed point:. . . . . . . {1:F}\n" +
"(G) General:. . . . . . . . . {0:G}\n" +
" (default):. . . . . . . . {0} (default = 'G')\n" +
"(N) Number: . . . . . . . . . {0:N}\n" +
"(P) Percent:. . . . . . . . . {1:P}\n" +
"(R) Round-trip: . . . . . . . {1:R}\n" +
"(X) Hexadecimal:. . . . . . . {0:X}\n",
- 1234, -1234.565F);
Console.WriteLine(s);
उदाहरण आउटपुट (एन-यू कल्चर):
(C) Currency: . . . . . . . . ($1,234.00)
(D) Decimal:. . . . . . . . . -1234
(E) Scientific: . . . . . . . -1.234565E+003
(F) Fixed point:. . . . . . . -1234.57
(G) General:. . . . . . . . . -1234
(default):. . . . . . . . -1234 (default = 'G')
(N) Number: . . . . . . . . . -1,234.00
(P) Percent:. . . . . . . . . -123,456.50 %
(R) Round-trip: . . . . . . . -1234.565
(X) Hexadecimal:. . . . . . . FFFFFB2E
यह सबसे अच्छा प्रारूप है। उन सभी मामलों में काम करता है:
String.Format( "{0:#,##0.##}", 0 ); // 0
String.Format( "{0:#,##0.##}", 0.5 ); // 0.5 - some of the formats above fail here.
String.Format( "{0:#,##0.##}", 12314 ); // 12,314
String.Format( "{0:#,##0.##}", 12314.23123 ); // 12,314.23
String.Format( "{0:#,##0.##}", 12314.2 ); // 12,314.2
String.Format( "{0:#,##0.##}", 1231412314.2 ); // 1,231,412,314.2
String.Format("{0:#,###,###.##}", MyNumber)
जो आपको प्रासंगिक बिंदुओं पर कॉमा देगा।
सबसे अधिक मतदान का जवाब बहुत अच्छा था और लगभग 7 वर्षों के लिए सहायक था। C # 6.0 और विशेष रूप से स्ट्रिंग इंटरपोलेशन की शुरूआत के साथ एक neater और, IMO सुरक्षित है, जो करने के लिए कहा गया है to add commas in thousands place for a number
:
var i = 5222000;
var s = $"{i:n} is the number"; // results to > 5,222,000.00 is the number
s = $"{i:n0} has no decimal"; // results to > 5,222,000 has no decimal
जहां चर i
को प्लेसहोल्डर (यानी {0}
) के स्थान पर रखा जाता है । इसलिए यह याद रखने की आवश्यकता नहीं है कि कौन सी वस्तु किस स्थिति में जाती है। स्वरूपण (यानी :n
) नहीं बदला है। नया क्या है, इसकी पूरी सुविधा के लिए, आप इस पृष्ठ पर जा सकते हैं ।
यदि आप संस्कृति की परवाह किए बिना "," विभाजक को ट्रेस करना चाहते हैं (उदाहरण के लिए ट्रेस या लॉग संदेश में), तो निम्न कोड काम करेगा और इसमें अगले व्यक्ति को यह बताने का अतिरिक्त लाभ होगा कि जो आप कर रहे हैं, वह वास्तव में ठोकर खाए।
int integerValue = 19400320;
string formatted = string.Format(CultureInfo.InvariantCulture, "{0:N0}", integerValue);
"19,400,320" पर सेट किया गया
निम्न उदाहरण कई मानों को प्रदर्शित करता है जो कस्टम प्रारूप स्ट्रिंग का उपयोग करके स्वरूपित होते हैं जिसमें शून्य प्लेसहोल्डर शामिल होते हैं।
String.Format("{0:N1}", 29255.0);
या
29255.0.ToString("N1")
परिणाम "29,255.0"
String.Format("{0:N2}", 29255.0);
या
29255.0.ToString("N2")
परिणाम "29,255.00"
int num = 98765432;
Console.WriteLine(string.Format("{0:#,#}", num));
ध्यान दें कि आप जो प्रारूपण कर रहे हैं वह संख्यात्मक होना चाहिए। ऐसा लगता नहीं है कि यह एक संख्या का एक स्ट्रिंग प्रतिनिधित्व करेगा और प्रारूप कॉमा के साथ है।
String.Format("0,###.###"); also works with decimal places
सी # 7.1 (शायद पहले!) यह स्ट्रिंग के प्रक्षेप के साथ आसान और अच्छा दिखने वाला बनाता है:
var jackpot = 1000000;
var niceNumberString = $"Jackpot is {jackpot:n}";
var niceMoneyString = $"Jackpot is {jackpot:C}";
आप एक फ़ंक्शन का उपयोग कर सकते हैं जैसे कि संख्याओं को प्रारूपित करना और वैकल्पिक रूप से वांछित दशमलव स्थानों में पास करना। यदि दशमलव स्थान निर्दिष्ट नहीं हैं, तो यह दो दशमलव स्थानों का उपयोग करेगा।
public static string formatNumber(decimal valueIn=0, int decimalPlaces=2)
{
return string.Format("{0:n" + decimalPlaces.ToString() + "}", valueIn);
}
मैं दशमलव का उपयोग करता हूं लेकिन आप टाइप को किसी अन्य में बदल सकते हैं या किसी अनाम वस्तु का उपयोग कर सकते हैं। आप नकारात्मक दशमलव स्थान मानों के लिए त्रुटि जाँच भी जोड़ सकते हैं।
संस्कृतियों और संभावित स्वरूपण मुद्दों के बारे में मैं अब और चिंता नहीं करता था, यह है कि मैंने इसे मुद्रा के रूप में स्वरूपित किया और बाद में मुद्रा प्रतीक को निकाल लिया।
if (decimal.TryParse(tblCell, out result))
{
formattedValue = result.ToString("C").Substring(1);
}
fr-FR
(जैसे da-DK
), या मुद्रा को निरूपित करने के लिए एक से अधिक वर्णों का उपयोग करता है (जैसे ), या कॉमा का उपयोग करके हजारों को अलग नहीं करता है (उदाहरण के लिए ) यूरोप की मुख्य भूमि)।
नीचे जावा में एक अच्छा समाधान है, हालांकि!
NumberFormat fmt = NumberFormat.getCurrencyInstance();
System.out.println(fmt.format(n));
या अधिक मजबूत तरीके से आप किसी विशेष स्थान के स्थान को प्राप्त करना चाहते हैं, तो नीचे के रूप में उपयोग कर सकते हैं:
int n=9999999;
Locale locale = new Locale("en", "US");
NumberFormat fmt = NumberFormat.getCurrencyInstance(locale);
System.out.println(fmt.format(n));
यूएस लोकल आउट : $ 9,999,999.00
जर्मन लोकेल आउटपुट
Locale locale = new Locale("de", "DE");
OUTPUT: 9.999.999,00 €
भारतीय स्थानीय उत्पादन
Locale locale = new Locale("de", "DE");
OUTPUT: Rs.9,999,999.00
एस्टोनियाई लोकेल आउटपुट
Locale locale = new Locale("et", "EE");
OUTPUT: 9 999 999 €
जैसा कि आप अलग-अलग आउटपुट में देख सकते हैं कि आपको विभाजक को अल्पविराम या बिंदु या यहां तक कि अंतरिक्ष के बारे में चिंता करने की आवश्यकता नहीं है, आप i18n मानकों के अनुसार स्वरूपित संख्या प्राप्त कर सकते हैं
locale
??
यदि आप इसे DataGridview में दिखाना चाहते हैं, तो आपको इसका प्रकार बदलना चाहिए, क्योंकि डिफ़ॉल्ट स्ट्रिंग है और चूंकि आप इसे दशमलव में बदलते हैं, इसे फ्लोटिंग पॉइंट के साथ संख्या के रूप में माना जाता है
Dim dt As DataTable = New DataTable
dt.Columns.Add("col1", GetType(Decimal))
dt.Rows.Add(1)
dt.Rows.Add(10)
dt.Rows.Add(2)
DataGridView1.DataSource = dt
String.Format("{0:#,##0}", 1234);
कोई दशमलव स्थानों के साथ भी काम करता है।