超长(20位)字符串型的数字怎么实现自增

发布时间:2024-05-31 02:13 发布:上海旅游网

问题描述:

如题,我要把20位长数字字符串,按数字自增后,以string型存储。
例如:89999 99999 99999 99999
自增后90000 00000 00000 00000
90000 00000 00000 00001都存入一个string[]
还是自己想出来了哈:
public string StringAutoIncrement(string str)
{
string IncrementStr = "";
int len = str.Length;
char[] char_str = str.ToCharArray();
int[] int_str = new int[len];
for (int i = 0; i < len; i++)//把字符串里的字符复制到整型数组
{
int_str[i] = int.Parse(char_str[i].ToString());
}
int_str[len - 1]++;//末位数值自增
for (int i = len - 1; i > 0; i--)
{
if (int_str[i] == 10)//如果该位等于10,则置该位为0,并向前借位
{
int_str[i] = 0;
int_str[i - 1]++;
}
if (int_str[0] == 10)//首位等于10,不能向前借位了
{
return "0";
}
}
for (int k = 0; k < len; k++)
{
IncrementStr += int_str[k].ToString();
}
return IncrementStr;
}

问题解答:

明显不行,那要是比double还长呢,

这东西要自己写个类。
把字符串按索引访问每一位,加1后逢10进1.

想想吧。不会很难

超过Int的长度可以使用Double数据类型。

89999 99999 99999 99999 这里的空格要不?

分成4个部分去加 在去判断

最后把4个部分组合起来存进string[]类型定义的变量中去

string ii = "899999999999";
double doublieiii=Convert.ToDouble(ii)+1;
string iii = doublieiii.ToString();

热点新闻