在 C#(不是 VB)中格式化数字以显示逗号

Posted

技术标签:

【中文标题】在 C#(不是 VB)中格式化数字以显示逗号【英文标题】:Formatting a number in C#(not VB) to show commas 【发布时间】:2014-02-24 19:02:42 【问题描述】:

我有一堆作为string 的数据,需要将其格式化为数字 (int)。

所以像这样:128989899 需要显示为128,989,899

实现这一目标的正确方法是什么?

PS:目前存在的问题没有解决我的问题,在结束我的问题之前,请仔细阅读它,或者如果你确实关闭它,请对我的问题提供一个简明的答案。

【问题讨论】:

澄清一下,您收到了包含128989899 等数据的strings,并且您希望将其显示为字符串,格式为128,989,899? 我已经看到你之前的问题了。建议为重复的链接有什么问题?为什么现在添加 VB 警告? 链接中建议的格式都不能满足我的需要。 @Bonifacio2,请告诉我您的链接如何适用于我的问题以及我问错了什么。我真的很感兴趣。因为正如我在下面演示的那样,没有一个问题解决了我的问题。你读过我的问题吗?你在这里回答 c# 问题吗? 有足够的线索供您学习并从提供的链接中得出答案。 @Bonifacio2 提出的观点也不是关于谁对谁错,而是关于教育我们自己如何提出好的问题并使 SO 社区变得更好。 【参考方案1】:

如果我正确理解了这个问题,您有一个 string,其中包含存储为文本的数字。

您希望这些以逗号分隔的数字显示,例如 123,456,789

以下内容应该有助于实现这一点,只需转换为int,然后再转换为正确格式的字符串:

string Input = "128989899";
int TempInt;
int.TryParse(Input, out TempInt);
string Output = TempInt.ToString("#,###");

【讨论】:

【参考方案2】:

类似这样的:

var number = "128989899";
Console.WriteLine(String.Format("0:N0", Int32.Parse(number)));

【讨论】:

@sarsnake 请注意,这个答案(非常轻微的改编)也在复制的链接中:) 不,不是。它有 0:N 格式,但没有 0:N0 可以达到不同的结果。本网站的重点是回答提出的问题,而不是您认为提出的问题。 一个小建议是始终使用 tryparse,因为它更健壮。 @sarsnake 正如您现在在其他帖子中所评论的那样,任何替代方案(在此处或在其他链接中提出)都可以正常工作。您只需通过 Parse/TryParse 或 Convert.ToInt32 将字符串转换为数字。但这是隐含的;你应该问而不是发布一个新问题。 没有。替代方案效果不佳。替代问题中提到的格式给了我 128,989,899.00,我需要 128,989,899。【参考方案3】:

重复:string format numbers

int number = 1000000000;
string commaseperated = number.ToString("#,##0");

【讨论】:

您能仔细阅读我的问题吗?我的数据以字符串(不是 int)的形式输入;我当然可以将其转换为 int,但我想问的是不这样做是否可以实现。 是的,它可以在不转换为 int 的情况下实现......但转换为 int 然后再转换回字符串会更容易和清晰。 @sarsnake - 但是您接受的答案也将字符串转换为 int!

以上是关于在 C#(不是 VB)中格式化数字以显示逗号的主要内容,如果未能解决你的问题,请参考以下文章

检测 VB.Net 中数字的文化,即小数点/千位分隔符的句点或逗号

C#怎么才能输入3个数字加个逗号

Highcharts:用逗号格式化所有数字?

输入 Intl.NumberFormat 时 VueJS 数字格式实时以逗号分隔

根据区域设置的数字格式(逗号分隔)

VB.NET 根据所选文化格式化数字