C# - 增加数字并保持前面的零

时间:2012-06-07 15:33:30

标签: c# int increment

我需要制作一个40位的计数器变量。它应该以{{1​​}}开始 并增加到 0000000000000000000000000000000000000001

当我使用0000000000000000000000000000000000000002类时,它会切断所有零。问题是我需要递增数字,然后将其转换为字符串,并使用正确的前导零数。总大小应为40位数。所以,如果我打50,例如,它应该是这样的:

int

我该怎么做并保留零?

5 个答案:

答案 0 :(得分:31)

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

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

请参阅Jeppe Stig Nielson's answer,了解我永远不会记住的格式选项。

答案 1 :(得分:19)

尝试使用

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

当然,int永远不会变得如此巨大,以至于填写所有这些数字位置(最大int只有10位数字。)

答案 2 :(得分:1)

只需将您的字符串转换为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');

答案 3 :(得分:0)

前几天我不得不做类似的事,但我只需要两个零。我最终得到了

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

不确定它是否是傻瓜式的,但请尝试

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

答案 4 :(得分:0)

您也可以使用它。.

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

结果:

01