增加数字的字符串表示形式,同时保留前导零

时间:2015-01-16 03:32:52

标签: c#

我正在尝试将0001的值增加到0002.我已经尝试过整数,但是将它舍入为2.我还尝试添加浮点数,效果相同:

float newInt = float.Parse("0001") + float.Parse("0001");

如何将数字增量格式化为0001?

2 个答案:

答案 0 :(得分:6)

你应该保持你的价值观和你的格式分开 (a)

只需维护一个整数变量,当你想要它显示为宽度为4时,左边用零填充,只需使用类似的东西:

String sNum = num.ToString("D4");

按照以下完整计划:

using System;

namespace test {
    class Program {
        static void Main(string[] args) {
            int x = 8;
            x++; Console.WriteLine(x.ToString("D4"));
            x++; Console.WriteLine(x.ToString("D4"));
            x++; Console.WriteLine(x.ToString("D4"));
            Console.ReadLine();  // just because I'm in the IDE.
        }
    }
}

输出:

0009
0010
0011

(a)你当然可以你想要的东西,例如:

using System;

namespace test {
    class Program {
        static void Main(string[] args) {
            String s = "0008";
            s = (Int32.Parse(s) + 1).ToString("D4"); Console.WriteLine(s);
            s = (Int32.Parse(s) + 1).ToString("D4"); Console.WriteLine(s);
            s = (Int32.Parse(s) + 1).ToString("D4"); Console.WriteLine(s);
            Console.ReadLine();
        }
    }
}

但是你应该知道,不断地将一个字符串转换回一个整数来增加它,然后再返回一个字符串来显示它,这是不必要的低效率。如果我的一个仆从给我买了那个代码进行审核,那么,我无法告诉你你将我撕裂的乐趣: - )

答案 1 :(得分:-2)

String sNum = num.ToString("0000");