我尝试使用 int.parse
和 convert 类将字符串转换为整数。
在转换时,我失去了开始的 0,而我不想要这个。
例如:09999 变成了 9999 - 我不想要这个。
我想保留它原来的样子。
我该如何做到这一点?
我尝试使用 int.parse
和 convert 类将字符串转换为整数。
在转换时,我失去了开始的 0,而我不想要这个。
例如:09999 变成了 9999 - 我不想要这个。
我想保留它原来的样子。
我该如何做到这一点?
myNumber.ToString("D5");
//D
代表“十进制”,而数字5是您希望该数字始终保持的位数。这将使用零填充值,直到它达到5个数字。
你无法做到。一个int
是用来表示数学整数的,数字 09999
和 9999
在数学上是完全相同的。
也许这里有不同的问题。你为什么需要这样做?也许有更好的方法来实现你想要的目标。
如果您想始终以5位打印数字,可以使用以下方式:
myNumber.ToString().PadLeft(5, '0');
int.Parse("09999")
返回的是0x0000270F。因为int
类型的长度是32位,其中18位是前导零(确切地说,有一位是符号位,你可以认为只有17位前导零)。// For our requirement that new ID's should be of same length as old ID's.
string strID = "002017";
int number = int.Parse(strID);
string newID = (++number).ToString("D" + strID.Length);
不行,如果你想保持它的方式,你必须将其作为字符串维护。
整数值不能有前导零
int
值具有前导零(即零位)。 - Ben Voigt如果你只是将数据转换为整数来测试其值,请保留原始数据并在需要前导零的时候使用其字符串值。如果你需要在进行数学运算后使整数具有零填充,则必须使用sprintf或类似工具对其进行格式化,以便在输出时使用。
我曾经遇到同样的问题; 通过 if else 条件语句解决了它 找不到其他的解决方案