【问题标题】:Separate long numbers by 3 digits用 3 位数字分隔长数字
【发布时间】:2011-02-20 08:14:06
【问题描述】:

有没有一种简单的方法可以将 1000000 转换为 1.000.000? asp.net、c#中的正则表达式或字符串格式

【问题讨论】:

标签: c# asp.net c#-3.0 .net-4.0 c#-4.0


【解决方案1】:

在读入整数后使用 ToString 和数字格式字符串。我相信您正在寻找的是“N”及其亲属。

关于数字格式字符串的 MSDN 页面:http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx

【讨论】:

    【解决方案2】:
    1000000.ToString("N0")
    

    【讨论】:

    • value.ToString("N0").Replace(',','.');成功了。逗号或点也来自系统分隔符设置。对于任何情况,我都用点替换逗号。谢谢。
    • 虽然在印度不起作用(他们不分组为 3 位数)
    • @Fredrik,它将根据区域设置工作,无论它们是什么
    • 没错,题目是“用3位数分隔长数字”。如果您的代码在“hi-IN”文化中运行,则输出将为10,00,000
    【解决方案3】:

    使用 ToString("N") 之后会将 1000000 转换为 1,000,000。不确定。虽然

    【讨论】:

    • 这可能取决于文化设置。在土耳其,它应该默认为点而不是逗号,所以你应该没问题。
    【解决方案4】:

    我认为您是在询问特定于文化的格式。这是西班牙的方式,例如:

    1000000.ToString("N", CultureInfo.CreateSpecificCulture("es-ES"));
    

    【讨论】:

      【解决方案5】:

      您可以将ToString 与格式字符串和使用“.”的格式提供程序一起使用。作为组分隔符并定义该数字应分组为 3 位组(并非所有文化都如此):

      int number = 1000000;
      Console.WriteLine(number.ToString("N0", new NumberFormatInfo()
                                                  {
                                                      NumberGroupSizes = new[] { 3 },
                                                      NumberGroupSeparator = "."
                                                  }));
      

      【讨论】:

      • 酷并不总是意味着正确。 egrunin 的解决方案要好得多,因为这是正确的“全局”方式!当然,我们真的不知道 OP 想要什么 :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      相关资源
      最近更新 更多