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