17

我需要制作一个 40 位的计数器变量。它应该开始0000000000000000000000000000000000000001
并递增到
0000000000000000000000000000000000000002

当我使用这个int类时,它会切断所有的零。问题是我需要增加数字,然后将其转换为字符串,并使用正确数量的前导零。总大小应为 40 位。因此,例如,如果我达到 50,它应该如下所示:

0000000000000000000000000000000000000050

我怎样才能做到这一点并保留零?

4

5 回答 5

38

转换为字符串时使用整数和格式或填充结果。如

int i = 1;
string s = i.ToString().PadLeft(40, '0');

请参阅Jeppe Stig Nielson 的答案,了解我也永远记不起的格式选项。

于 2012-06-07T15:35:42.680 回答
20

尝试使用

int myNumber = ...;
string output = myNumber.ToString("D40");

当然,int永远不可能增长到填满所有这些数字的地方(最大int的只有 10 个数字)。

于 2012-06-07T15:36:26.277 回答
2

只需将您的字符串转换为 int,执行加法或任何其他操作,然后转换回具有足够数量的前导 0 的字符串:

// 39 zero's + "1"
string initValue = new String('0', 39) + "1";

// convert to int and add 1
int newValue = Int32.Parse(initValue) + 1;

// convert back to string with leading zero's
string newValueString = newValue.ToString().PadLeft(40, '0');
于 2012-06-07T15:47:24.457 回答
1

前几天我不得不做类似的事情,但我只需要两个零。我结束了

string str = String.Format("{0:00}", myInt);

不确定这是否是万无一失的,但请尝试

String.Format("{0:0000000000000000000000000000000000000000}", myInt)
于 2012-06-07T15:53:27.510 回答
0

你也可以用这个。。

int number = 1;
string tempNumber = $"{number:00}";

结果:

01
于 2020-04-14T01:45:31.333 回答