Convert.ToInt32 – 保持前置零

我将数字存储在数据库中,有些数字的第一个数字为零,因为它们总是需要一定数量的数字。 我有一个文本框,其中输入了这个数字,所以我做了一个Convert.ToInt32(TextBox.Text),它删除了起始零(如果有的话)。 有没有人有任何想法如何我可以保持零,或将其添加到转换后的开始?

保持前面的零的唯一方法是不将其转换为数字。

数字没有任何前面的零,因为它只包含值,而不是值的字符串表示forms。

如果要将其转换为数字然后将其转换回字符串,重新创建前面的零,则可以使用自定义格式:

string formatted = number.ToString("00000"); 

或者是动态的数字位数:

 string formatted = number.ToString(new String('0', numberOfDigits)); 

如果需要保留填充零,则将值保留为String。 整数不能保留有关填充零的信息,因为它们只代表一个数字。

如果需要validation输入的数字,请使用Int32.TryParse或将值与正则表达式匹配(如"^\d+$" )。

编辑:除了Guffa的答案 ,您可以使用“D”( MSDN )格式化为指定数量的字符(如果需要,填充为零):

 string formatted = number.ToString("D5"); // 13 -> 00013 

我这样做的方法是将数字放回数据库而不是通过使用myint.ToString("0000000")int用于string 。 0的数字是填充数字的总长度。

您必须使用字符串格式保持前导零:

 int fooValue = Convert.ToInt32(TextBox.Text) //operations with foo Value string formatValue = fooValue.ToString("#0000"); 

这也应该有效。

 123.ToString().PadLeft(5, '0'); // 00123