【问题标题】:How do I format numbers differently based on their value in C#?如何根据 C# 中的值对数字进行不同的格式设置?
【发布时间】:2011-01-20 13:57:49
【问题描述】:

我有一个整数,我将根据以下规则将其存储在字符串中:

  1. 如果数字小于 10,那么它前面应该有一个0
  2. 如果大于 10,存储时不带前导 0。

如何在 C# 中做到这一点?

【问题讨论】:

    标签: c# string formatting


    【解决方案1】:

    您可以将ToStringformat string 一起使用:

    var i = 6;
    var stringRepresentation = i.ToString("d2");
    

    【讨论】:

      【解决方案2】:

      你可以使用:

      String.Format("{0:D2}", myInt);
      

      ":D2" 告诉 String.Format 通过在前面添加零将数字填充到至少两位数。如果它长于两位数,则不会填充任何内容。

      【讨论】:

        【解决方案3】:

        您可以在 MSDN 上找到有关格式化数字的信息:

        您的问题的一个答案是:

        string formatted = myNumber.ToString("00");
        

        【讨论】:

          【解决方案4】:

          这个网站是一个很好的参考:http://blog.stevex.net/string-formatting-in-csharp/

          对于你的问题,你也可以使用这个:String.Format("{0:0#}", <yourIntegerVariable>)

          【讨论】:

            【解决方案5】:

            如果你已经有了字符串,你可以写

            str = str.PadLeft(2, '0');
            

            请注意,您可能正在寻找

            string str = new DateTime(1,1,1, 12,34,56).ToShortTimeString();
            

            这会返回12:34 PM,并且可以使用format strings进行自定义。

            【讨论】:

              【解决方案6】:
              int i = 8;
              
              string s = String.Format("{0:00}", i);
              

              00 代表 2 位数字 00.00 代表 2 位数字和 2 位小数

              【讨论】:

                猜你喜欢
                • 2011-06-07
                • 2016-06-04
                • 2021-07-30
                • 1970-01-01
                • 2015-10-29
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多