අංකයක් සඳහා දහස් ගණනක් ස්ථානයේ කොමාව එක් කිරීමට මට අවශ්යය.
String.Format()
?
Answers:
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
වඩාත්ම ඡන්දය දුන් පිළිතුර විශිෂ්ට වූ අතර එය වසර 7 ක් පමණ ප්රයෝජනවත් විය. සී # 6.0 හඳුන්වාදීමත් සමඟ විශේෂයෙන් ස්ට්රිං ඉන්ටර්පෝලේෂන් සමඟ ඉල්ලුම් කර ඇති දේ කිරීමට ක්රමයක් සහ 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
) වෙනස් වී නැත. අළුත් දේ පිළිබඳ සම්පූර්ණ අංගයක් සඳහා, ඔබට මෙම පිටුවට යා හැකිය .
String.Format("{0:#,###,###.##}", MyNumber)
එමඟින් ඔබට අදාළ ස්ථානවල කොමාව ලබා දෙනු ඇත.
සංස්කෘතිය නොසලකා "," බෙදුම්කරුවෙකුට බල කිරීමට ඔබ කැමති නම් (නිදසුනක් ලෙස හෝඩුවාවක් හෝ ලොග් පණිවිඩයක් තුළ), පහත කේතය ක්රියාත්මක වන අතර එය හරහා පැකිලෙන ඊළඟ තැනැත්තාට ඔබ කරන දේ හරියටම පැවසීමේ අමතර වාසියක් ඇත.
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")
ප්රති result ලය "29,255.0"
String.Format("{0:N2}", 29255.0);
හෝ
29255.0.ToString("N2")
ප්රති result ලය "29,255.00"
int num = 98765432;
Console.WriteLine(string.Format("{0:#,#}", num));
ඔබ ආකෘතිකරණය කරන අගය සංඛ්යාත්මක විය යුතු බව සලකන්න. එය අංකයක තන්තු නිරූපණයක් ගන්නා බවක් නොපෙනෙන අතර ආකෘතිය කොමාව සමඟ ඇත.
සී # 7.1 (සමහර විට මීට පෙර?) මෙය නූල් අන්තර් මැදිහත්වීමකින් යුක්ත විය හැකි තරම් පහසු හා ලස්සන පෙනුමක් ඇති කරයි:
var jackpot = 1000000;
var niceNumberString = $"Jackpot is {jackpot:n}";
var niceMoneyString = $"Jackpot is {jackpot:C}";
String.Format("0,###.###"); also works with decimal places
සංඛ්යා හැඩගස්වා ගැනීමට සහ අපේක්ෂිත දශම ස්ථානවල විකල්ප ලෙස සමත් වීමට ඔබට මෙවැනි ශ්රිතයක් භාවිතා කළ හැකිය. දශම ස්ථාන නිශ්චිතව දක්වා නොමැති නම් එය දශම ස්ථාන දෙකක් භාවිතා කරයි.
public static string formatNumber(decimal valueIn=0, int decimalPlaces=2)
{
return string.Format("{0:n" + decimalPlaces.ToString() + "}", valueIn);
}
මම දශම භාවිතා කරන නමුත් ඔබට වර්ගය වෙනත් ඕනෑම ආකාරයකට වෙනස් කිරීමට හෝ නිර්නාමික වස්තුවක් භාවිතා කළ හැකිය. Negative ණ දශම ස්ථාන අගයන් සඳහා දෝෂ පරීක්ෂා කිරීමක් ද ඔබට එකතු කළ හැකිය.
සංස්කෘතීන් සහ විභව හැඩතල ගැන්වීමේ ගැටළු පිළිබඳව මා තවදුරටත් කරදර නොවීමට භාවිතා කළ ක්රමය නම්, මම එය මුදල් ලෙස සංයුති කර මුදල් සංකේතය ඉවත් කර ගැනීමයි.
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));
එක්සත් ජනපද ස්ථානය OUTPUT: $ 9,999,999.00
ජර්මානු ස්ථාන ප්රතිදානය
Locale locale = new Locale("de", "DE");
නිමැවුම්: 9.999.999,00 €
ඉන්දියානු ස්ථාන ප්රතිදානය
Locale locale = new Locale("de", "DE");
නිමැවුම්: රු .9,999,999.00
එස්තෝනියානු ස්ථාන ප්රතිදානය
Locale locale = new Locale("et", "EE");
නිමැවුම්: 9 999 999 €
විවිධ නිමැවුම් වලින් ඔබට දැකිය හැකි පරිදි, බෙදුම්කරු කොමාව හෝ තිතක් හෝ අවකාශයක් වීම ගැන කරදර විය යුතු නැත. ඔබට i18n ප්රමිතීන්ට අනුව ආකෘතිකරණය කළ හැකිය
locale
??
ඔබට එය DataGridview හි පෙන්වීමට අවශ්ය නම්, ඔබ එහි වර්ගය වෙනස් කළ යුතුය, මන්ද පෙරනිමිය String වන අතර ඔබ එය දශමයට වෙනස් කරන බැවින් එය පාවෙන ලක්ෂ්යය සහිත අංකයක් ලෙස සලකයි
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);
දශම ස්ථාන නොමැතිව ද ක්රියා කරයි.