【问题标题】:How to add thousands separator to a numeric string in c#?如何在c#中将千位分隔符添加到数字字符串?
【发布时间】:2013-10-09 13:07:28
【问题描述】:

我想要这个“123456789”到这个“123,456,789”。

关于如何使用 .Format().ToString() 以数字方式格式化非字符串类型的大量 SO 答案。无法从数字字符串中找到有关如何操作的任何答案。

我可以这样做,但并不理想:

Convert.ToInt32(minPrice).ToString("N0");

【问题讨论】:

  • @SystemDown - 因为它已经是一个字符串并且将它转换为一个 int 然后再返回一个字符串似乎没有必要将它返回为不同格式的字符串。
  • 另一种方法是手动遍历字符串以找到插入逗号的适当位置,这可能会更加昂贵。
  • 除了看似更加昂贵之外,它也可能容易出错。例如,如果它实际上不是一个整数(这会引发您可以修复的异常),或者具有前导零或负号,具体取决于您的实现,您可能会产生错误的结果并且永远不知道它。跨度>
  • 这似乎已经是您问题的简单/整洁的解决方案。
  • 谢谢,我明白了。那么这将是有道理的,尽管这是一项如此简单的任务,但我似乎找不到任何关于它的文档。如果这是推荐的方式,那么我会坚持下去。

标签: c# format string-formatting tostring number-formatting


【解决方案1】:

将您认为不理想的函数简单地封装到扩展方法中。

public static string ToFormattedThousands(this string number)
{
    return Convert.ToInt32(number).ToString("N0");
}

只需将此函数放入静态类中,然后您就可以在任何字符串上调用它。

例如:

string myString = "123456789".ToFormattedThousands();

【讨论】:

    猜你喜欢
    • 2021-11-17
    • 2013-02-27
    • 1970-01-01
    • 2011-07-27
    • 2014-09-28
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    • 2018-06-22
    相关资源
    最近更新 更多