我将数字存储在数据库中,有些数字的第一个数字为零,因为它们总是需要一定数量的数字。我有一个文本框,其中输入了这个数字,所以我做了一个Convert.ToInt32(TextBox.Text),它删除了起始零(如果有的话)。有没有人有任何想法如何保持零,或在转换后将它添加到开始?
答案 0 :(得分:26)
保持前面的零的唯一方法是不将其转换为数字。
数字没有任何前面的零,因为它只包含值,而不是值的字符串表示形式。
如果要将其转换为数字,然后将其转换回字符串,重新创建前面的零,则可以使用自定义格式:
string formatted = number.ToString("00000");
或者是动态的数字位数:
string formatted = number.ToString(new String('0', numberOfDigits));
答案 1 :(得分:10)
如果需要保留填充零,则将值保留为字符串。整数不能保留有关填充零的信息,因为它们只是代表一个数字。
如果您需要验证输入的数字,请使用Int32.TryParse或将值与regular expression匹配(如"^\d+$"
)。
修改:除Guffa's answer外,您还可以使用“D”(MSDN)格式化为指定数量的字符(必要时填充为零) :
string formatted = number.ToString("D5"); // 13 -> 00013
答案 2 :(得分:2)
我这样做的方法是将号码放回数据库而不是通过使用int
string
使用myint.ToString("0000000")
。 0的数字是填充数字的总长度。
答案 3 :(得分:1)
这也应该有用。
123.ToString().PadLeft(5, '0'); // 00123
答案 4 :(得分:0)
您必须使用字符串格式保留前导零:
int fooValue = Convert.ToInt32(TextBox.Text)
//operations with foo Value
string formatValue = fooValue.ToString("#0000");