9

可能重复:
像 StackoverFlow 这样的格式数字(以 K 后缀四舍五入到千位)

如何在 C# 中格式化数字,使 12523.57 变为“12K”,2323542.32 变为“2M”等?

我不知道如何附加正确的数字缩写(K、M 等)并显示适当的数字?

所以,

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

C# 中是否有内置的方法来执行此操作?

4

2 回答 2

9

我不认为这是 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();

如果您不想截断,而是舍入,请使用 round 而不是 floor。

于 2010-03-09T20:06:42.197 回答
0

没有内置的方式,你必须滚动你自己的例程,类似于这样:

public string ConvertNumber(int num)
{
    if (num>= 1000)
        return string.Concat(num/ 1000, "k");
    else
        return num.ToString();
}
于 2010-03-09T20:07:37.543 回答