int lastpadnum = padnumbers.Count;
int nextpadnum = lastpadnum + 1;如果列表padnumber中的最后一个数字是191,那么在lastpadnum中,该值将是191,在nextpadnum中,该值将是192。
但是如果在列表padnumber中最后一个数字是"0000000000191“,那么在lastpadnum中我只会看到191。但我希望得到整数"0000000000191“,并将其作为int。
然后我试了一下:
int lastpadnum = Convert.ToInt32(padnumbers[padnumbers.Count - 1]);
int nextpadnum = lastpadnum + 1;但是,当列表中的最后一个数字是"0000000000191“时,我只得到了191。
最后,我想计算下一个数字,但不确定如何计算it.If,例如,最后一个数字是191,下一个数字是192。但是如果最后一个数字是00191,那么下一个数字应该是00192,如果最后一个数字是"0000000000191“,那么下一个数字应该是"0000000000192”。
发布于 2017-07-15 07:29:57
"0000000000191“不是整数。它是一个字符串。int类型的变量永远不包含前导零,也不包含任何格式化信息。当您打印输出时,它被隐式或显式地转换为字符串;不可能逐字打印int,因为它实际上是以二进制格式保存的。
如果需要前导零,则需要转换为字符串。如果您想要一些具有前导零的原始值的前导零,则需要保留该值;转换为int会自动消除所有格式信息。
也就是说,如果您有一个包含191的变量,并且希望将其显示为0000000000191,则只需将其格式化为字符串,例如
int someValue = 191;
int valueString = someValue.ToString("0000000000000");
Console.Writeline(valueString);如果你想保持一个字符串格式的序列,你可以转换成int,增量,然后再转换回来,如下所示:
string lastpadstring = padnumbers[padnumbers.Count - 1];
int lastpadnum = Convert.ToInt32(lastpadstring);
int nextpadnum = lastpadnum + 1;
string nextpadstring = nextpadnum.ToString(new String('0', lastpadstring.Length));发布于 2017-07-15 07:32:39
191和00191是相同的数字。看起来你要做的就是把一个数字填零的字符串加1,然后生成一个相同长度的新的填零字符串。看一下下面的代码,看看它是否能完成您想要的操作:
string lastpadnum = "0000000000191";
int desiredLength = lastpadnum.Length;
int nextnum = Convert.ToInt32(lastpadnum) + 1;
string nextpadnum = nextnum.ToString().PadLeft(desiredLength, '0');
Console.WriteLine(nextpadnum);
// Output:
// 0000000000192https://stackoverflow.com/questions/45112850
复制相似问题