在 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 中数字的文化,即小数点/千位分隔符的句点或逗号