我想将包含5个零("00000")的字符串转换为Int,以便可以递增。每当我使用Convert将字符串转换为整数时。ToInt32(),值变为0。如何确保整数在转换后保持固定长度?

我希望能够将值从"00000"递增到"00001"等,以便该值在数据库中出现那么多位而不是0或1。

如果你要向下投票的问题,至少你可以做的是留下你为什么这样做的反馈。..

有帮助吗?

解决方案

整数是一个整数。没有。

因此,您具有零值为零的int,无法添加任何“长度”元数据或类似。

我猜你真正想要的是,那个 - 在某些时候 - 将有一个string再次。您希望将该生成古代替代代表代表您的号码,但有5个字符和前导零。

您可以使用:

string s = i.ToString("00000")
.

编辑

你说你希望数字在你的数据库中看起来像那样。 问问自己:

它真的需要在db中读取它,或者在从数据库中读取它们时,它是否足以格式化数字?

取决于此,在写入或从DB读取时格式化它们(如上所示)。当然,前案例需要更多的存储空间,您无法真正使用SQL或类似于执行算术运算!

其他提示

整数没有长度,它纯粹是一个数字值。如果要保留长度,则必须将有关其余的长度的信息存储在其他地方。

您可以将值包装在属性中保持长度的对象中。示例:

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
.

正如olydis上面所说,一个 int 只是一个数字。它没有指定 显示格式.我也不建议将它用零填充存储在数据库中。这是一个 int, ,将其存储为 int.

为了显示的目的,在应用程序中,一个报告,什么,然后垫出零。

string s = i.ToString("00000");
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top