C#-递增数字,并在前面保留零

问题描述 投票:14回答:5

我需要设置40位计数器变量。它应该以0000000000000000000000000000000000000001开头并增加到0000000000000000000000000000000000000002

当我使用int类时,它会切掉所有零。问题是我需要增加数字,然后将其转换为具有正确数量的前导零的字符串。总大小应为40位数字。因此,例如,如果我打到50,它应该看起来像这样:

0000000000000000000000000000000000000050

我该怎么做并保留零?

c# int increment
5个回答
33
投票

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

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

请参阅Jeppe Stig Nielson's answer,我也记不清格式设置了。


19
投票

尝试使用

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

[当然,int永远不会增长到足以填满所有这些数字位的位置(最大的int仅具有10位数字)。


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');

0
投票

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

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

不确定这是否很简单,但可以尝试

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

0
投票

您也可以使用它。.

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

结果:

01
© www.soinside.com 2019 - 2024. All rights reserved.