2010-03-09 3 views
6

Duplicar posibles:
Format Number like StackoverFlow (rounded to thousands with K suffix)¿Cómo puedo formatear números en C# para que 12523 se convierta en "12K", 2323542 se convierta en "2M", etc.?

¿Cómo puedo formatear números en C# por lo que se convierte en 12523,57 "12K", 2.323.542,32 se convierte en "2M", etc.?

No sé cómo anexar la abreviatura de número correcta (K, M, etc.) y mostrar los dígitos apropiados?

Así,

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

¿Hay una construida en la forma en C# para hacer esto?

+3

esto es un duplicado de http://stackoverflow.com/questions/2134161/format-number -like-stackoverflow-rounded-to-miles-with-k-sufijo – Pharabus

+1

No, no lo es. Eso se refiere a formatear específicamente para un solo sufijo, "K". – Teradact

+0

y por qué "M" entonces? – Fredou

Respuesta

6

No creo que esto sea una funcionalidad estándar en C# /. Net, pero no es tan difícil hacerlo usted mismo. En pseudocódigo sería algo como esto:

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

Si no desea truncar, pero todo el año, en lugar de uso durante todo el suelo.

0

No hay que está construido en forma, usted tiene que rodar su propia rutina, similar a esto:

public string ConvertNumber(int num) 
{ 
    if (num>= 1000) 
     return string.Concat(num/ 1000, "k"); 
    else 
     return num.ToString(); 
} 
Cuestiones relacionadas