Как я могу отформатировать числа в C # так, чтобы 12523 стало 12K, 2323542 стало 2M и т. Д.?

Возможный дубликат:
Форматирование числа, например StackoverFlow (округлено до тысяч с суффиксом K)

Как я могу отформатировать числа в C # так, чтобы 12523.57 превратился в «12K», 2323542.32 стал в «2M» и т. Д.?

Я не знаю, как добавить правильное сокращение числа (K, M и т. Д.) И показать соответствующие цифры?

So,

1000 = 1K  
2123.32 = 2K  
30040 = 30k  
2000000 = 2M  

Есть ли в C # для этого встроенный способ?


person Teradact    schedule 09.03.2010    source источник
comment
это дубликат номера формата stackoverflow.com/questions/2134161/   -  person Pharabus    schedule 09.03.2010
comment
Нет, это не так. Это касается специального форматирования только одного суффикса, K.   -  person Teradact    schedule 09.03.2010
comment
Возможно, это ближе: stackoverflow.com/questions/128618/ c-файл-размер-формат-поставщик. @Teradact - вам нужны только незначительные настройки, чтобы он заработал, код в основном тот же.   -  person Kobi    schedule 09.03.2010
comment
просмотрите комментарии к ответу - там есть однострочный текст, который также позволяет использовать M.   -  person Joey    schedule 09.03.2010


Ответы (2)


Я не думаю, что это стандартная функциональность C # /. Net, но сделать это самостоятельно не так уж и сложно. В псевдокоде это будет примерно так:

if (number>1000000)
   string = floor(number/1000000).ToString() + "M";
else if (number > 1000)
   string = floor(number/1000).ToString() + "K";
else
   string = number.ToString();

Если вы хотите не обрезать, а округлить, используйте округлую форму вместо пола.

person Patrick    schedule 09.03.2010

Нет встроенного способа, вам придется свернуть свою собственную процедуру, примерно так:

public string ConvertNumber(int num)
{
    if (num>= 1000)
        return string.Concat(num/ 1000, "k");
    else
        return num.ToString();
}
person Jason Evans    schedule 09.03.2010