我想将包含5个零(“00000”)的字符串转换为Int,以便可以递增。 每当我使用Convert.ToInt32()将字符串转换为整数时,该值将变为0。 如何在转换后确保整数保持固定长度?
我希望能够将值从“00000”增加到“00001”,依此类推,以便数值在数据库中显示多个数字而不是0或1。
如果你打算投票问题,你至少可以做的就是为什么要这样做...
答案 0 :(得分:4)
整数是整数。没什么。
所以你拥有的int
的值为零,没有办法添加任何"长度"元数据或类似的。
我猜你真正想要的是,在某个时刻 - 会再次出现string
。您希望string
代表您的号码,但需要5个字符和前导零。
您可以使用以下方式实现:
string s = i.ToString("00000")
修改强>
您说您希望数字在数据库中显示如此。 问问自己:
是否真的需要在数据库中使用它,或者只要从数据库中读取数字就足以格式化数字了?
根据具体情况,在写入或读取数据库时格式化它们(如上所示)。当然,前一种情况需要更多的存储空间,你不能真正使用SQL或类似的来执行算术运算!
答案 1 :(得分:1)
整数没有长度,它纯粹是一个数值。如果你想保持长度,你必须存储有关其他地方长度的信息。
您可以将值包装在保持属性长度的对象中。例如:
public class FormattedInt {
private int _value, _length;
public FormattedInt(string source) {
_length = source.Length;
_value = Int32.Parse(source);
}
public void Increase() {
_value++;
}
public override string ToString() {
return _value.ToString(new String('0', _length));
}
}
用法:
FormattedInt i = new FormattedInt("0004");
i.Increase();
string s = i.ToString(); // 0005
答案 2 :(得分:1)
正如olydis所说,int
只是一个数字。它没有指定显示格式。我不建议将其用零填充在数据库中。它是int
,将其存储为int
。
出于显示目的,在应用程序中,报告,无论如何,然后填充零。
string s = i.ToString("00000");