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

发布于 2024-08-24 16:17:52 字数 456 浏览 2 评论 0原文

可能的重复:
像 StackoverFlow 一样格式化数字(四舍五入为千,后缀为 K)

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

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

那么,

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

C# 中有内置方法可以做到这一点吗?

Possible Duplicate:
Format Number like StackoverFlow (rounded to thousands with K suffix)

How can I format numbers in C# so 12523.57 becomes "12K", 2323542.32 becomes "2M", etc?

I don't know how to append the correct number abbreviation (K, M, etc) and show the appropriate digits?

So,

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

Is there a built in way in C# to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

澉约 2024-08-31 16:17:52

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

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

I don't think this is standard functionality in C#/.Net, but it's not that difficult to do this yourself. In pseudocode it would be something like this:

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

If you don't want to truncate, but round, use round instead of floor.

倾其所爱 2024-08-31 16:17:52

没有内置的方法,你必须推出自己的例程,类似于:

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

There's no built in way, you'll have to roll your own routine, similar to this:

public string ConvertNumber(int num)
{
    if (num>= 1000)
        return string.Concat(num/ 1000, "k");
    else
        return num.ToString();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文