【问题标题】:Number Formatting in Thousands以千为单位的数字格式
【发布时间】:2011-03-21 17:56:36
【问题描述】:
  • 例如,如何在 C# 中将数字 10562.3093 转换为 10,562
  • 另外,我如何确保相同的格式化程序可以正确应用于所有其他数字?....
  • ...例如 2500.32 变为 2,500

非常感谢您的帮助。

【问题讨论】:

    标签: c# number-formatting


    【解决方案1】:
    string formatted = value.ToString("N0");
    

    这会以当前文化指定的方式划分您的数字(在“en-US”的情况下,它是一个逗号每 1000 的倍数),并且不包含小数位。

    在 .NET 中查找有关格式化数字的任何问题的最佳位置必须在这里:

    Standard Numeric Format Strings (MSDN)

    这里:

    Custom Numeric Format Strings (MSDN)

    【讨论】:

      【解决方案2】:
      double x = 10562.3093;
      x.ToString("#,0");
      

      String.Format("{0:#,0}", 10562.3093);
      

      【讨论】:

      • 也不起作用:0 将变为空。您应该使用N0#,0
      • 已编辑,我没有考虑这种情况。
      【解决方案3】:
      string.Format("{0:n0}", 10562.3093);
      

      【讨论】:

        【解决方案4】:
        String.Format("{0:0,0}", 10562.3093);
        

        出于以下目的,我将此网站添加为书签:String Formatting in C#

        【讨论】:

        • 使用 "0,0" 将在单个数字前加上 0: String.Format("{0:0,0}", 2.3093);结果为“02”,使用“#,#”代替会阻止这种情况。
        • 也不起作用:0 将变为空。您应该使用N0#,0
        猜你喜欢
        • 2022-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-17
        • 1970-01-01
        相关资源
        最近更新 更多