使用.NET格式化大数字

Dav*_*Dev 8 .net c# formatting numbers humanize

我要求将像4,316,000这样的大数字格式化为"4.3m".

我怎么能在C#中做到这一点?

Ree*_*sey 18

您可以使用Log10来确定正确的中断.像这样的东西可以工作:

double number = 4316000;

int mag = (int)(Math.Floor(Math.Log10(number))/3); // Truncates to 6, divides to 2
double divisor = Math.Pow(10, mag*3);

double shortNumber = number / divisor;

string suffix;
switch(mag)
{
    case 0:
        suffix = string.Empty;
        break;
    case 1:
        suffix = "k";
        break;
    case 2:
        suffix = "m";
        break;
    case 3:
        suffix = "b";
        break;
}
string result = shortNumber.ToString("N1") + suffix; // 4.3m
Run Code Online (Sandbox Code Playgroud)