2010-03-09 7 views
6

Possible en double:
Format Number like StackoverFlow (rounded to thousands with K suffix)Comment puis-je formater des nombres en C# afin que 12523 devienne "12K", 2323542 devient "2M", etc?

Comment puis-je les numéros de format en C# afin 12523,57 DEVIENT "12K", 2.323.542,32 DEVIENT "2M", etc?

Je ne sais pas comment ajouter l'abréviation de nombre correcte (K, M, etc) et montrer les chiffres appropriés?

Ainsi,

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

est-il construit de manière en C# pour ce faire?

+3

c'est un double de http://stackoverflow.com/questions/2134161/format-number -like-stackoverflow-arrondi-aux-milliers-avec-k-suffixe – Pharabus

+1

Non, ce n'est pas le cas. Cela concerne spécifiquement la formation d'un seul suffixe, "K". – Teradact

+0

et pourquoi "M" alors? – Fredou

Répondre

6

Je ne pense pas que ce soit une fonctionnalité standard en C# /. Net, mais ce n'est pas si difficile à faire vous-même. En pseudocode ce serait quelque chose comme ceci:

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

Si vous ne voulez pas tronquer, mais rond, utilisez rond au lieu de plancher.

0

Il n'y a pas construit en chemin, vous devrez rouler votre propre routine, semblable à ceci:

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