Convert.ToInt32 - 保持前置零

Gra*_*ace 8 c#

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

Guf*_*ffa 29

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

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

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

string formatted = number.ToString("00000");
Run Code Online (Sandbox Code Playgroud)

或者对于动态的数字位数:

string formatted = number.ToString(new String('0', numberOfDigits));
Run Code Online (Sandbox Code Playgroud)

  • 不是`number.ToString().PadLeft(numberOfDigits,'0')`更容易?至少更容易阅读我会说...... :) (2认同)
  • 在做这样的填充时我担心负值.例如,您的PadLeft选项如下所示:"00-9"而不是-009. (2认同)

Ric*_*lay 10

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

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

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

string formatted = number.ToString("D5"); // 13 -> 00013
Run Code Online (Sandbox Code Playgroud)