উত্তর:
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
,
হাজার হাজার বিভাজক হিসাবে পৃথক অক্ষর ব্যবহার করে , উদাহরণস্বরূপ কোনও স্থান বা এমনকি .
।
.
স্ট্যান্ডার্ড ফর্ম্যাটগুলি, তাদের সম্পর্কিত আউটপুট সহ,
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);
উদাহরণ আউটপুট (en-us সংস্কৃতি):
(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 বছর ধরে এটি সহায়ক। সি # .0.০ এর প্রবর্তন এবং বিশেষত স্ট্রিং ইন্টারপোলেশনটি খুব সুন্দর এবং আইএমও নিরাপদ, যা বলা হয়েছে তা করার উপায় 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
সি # .1.১ (সম্ভবত আগে?) স্ট্রিং ইন্টারপোলেশন সহ এটিকে যতটা সহজ এবং সুন্দর দেখাবে তেমন করে তোলে:
var jackpot = 1000000;
var niceNumberString = $"Jackpot is {jackpot:n}";
var niceMoneyString = $"Jackpot is {jackpot:C}";
আপনি সংখ্যার ফর্ম্যাট করতে এই জাতীয় ফাংশন ব্যবহার করতে পারেন এবং পছন্দসই দশমিক জায়গায় pass দশমিক স্থান নির্দিষ্ট না করা থাকলে এটি দুটি দশমিক স্থান ব্যবহার করবে।
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");
আউটপুট: 9.999.999,00 €
ভারতীয় লোকাল আউটপুট
Locale locale = new Locale("de", "DE");
আউটপুট: 9,999,999.00 টাকা .00
এস্তোনীয় লোকালে আউটপুট
Locale locale = new Locale("et", "EE");
আউটপুট: 9 999 999 €
আপনি বিভিন্ন আউটপুটগুলিতে দেখতে পাচ্ছেন যে আপনাকে বিভাজকটি কমা বা বিন্দু বা এমনকি স্পেস হওয়ার বিষয়ে চিন্তা করতে হবে না আপনি আই 18n মান অনুসারে নম্বরটি ফর্ম্যাট করতে পারবেন
locale
??
আপনি যদি এটি ডেটাগ্রিডভিউতে দেখাতে চান তবে আপনার প্রকারটি পরিবর্তন করা উচিত, কারণ ডিফল্টটি স্ট্রিং এবং যেহেতু আপনি এটি দশমিক হিসাবে পরিবর্তন করেন এটি ভাসমান পয়েন্ট সহ সংখ্যা হিসাবে বিবেচনা করে
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);
কোন দশমিক জায়গা নিয়েও কাজ করে।