How to format numbers like SO with C#?
10, 5k, ...
Like this: (EDIT: Tested)
static string FormatNumber(int num) {
if (num >= 100000)
return FormatNumber(num / 1000) + "K";
if (num >= 10000) {
return (num / 1000D).ToString("0.#") + "K";
}
return num.ToString("#,0");
}
Examples:
1
23
136
6,968
23.1K
133K
Note that this will give strange values for numbers >= 108.
For example, 12345678
becomes 12.3KK
.