我試過int.parse,
並將類轉換爲將字符串轉換爲int。將字符串轉換爲int而不會在開始處丟失零
雖然我正在轉換。我在開始時輸了0,我不想要。
例如:09999變成9999 - 我不想要這個。
我想保持原樣。
我該怎麼做?
我試過int.parse,
並將類轉換爲將字符串轉換爲int。將字符串轉換爲int而不會在開始處丟失零
雖然我正在轉換。我在開始時輸了0,我不想要。
例如:09999變成9999 - 我不想要這個。
我想保持原樣。
我該怎麼做?
你不能。 int
旨在表示數學整數。數字09999
和9999
在數學上完全相同。
也許這裏有一個不同的問題。你爲什麼需要這樣做?也許有更好的方法來做你想做的事情。
你不能。如果您希望它保持原樣,您將不得不將該值保留爲字符串。
不,int.Parse("09999")
實際上返回0x0000270F。正好32位(因爲這是多大的int
),其中18個是前導零(準確地說,一個是符號位,你可能會認爲只有17個前導零)。
只有當你將它轉換回一個你得到「9999」的字符串時,該字符串中前導零的存在與否纔會被轉換回字符串。
int類型不能有前導零
所有'int'值的一半都有前導零(即零)。 –
呵呵,你是對的! :) –
如果你想要做這樣的事情總是與5個地方打印您的號碼,它會像
myNumber.ToString().PadLeft(5, '0');
如果你只是轉換爲int測試值,保留原始數據並在需要領先的zeor時使用它的字符串值。如果您在數學上使用整數後需要使用零填充,則必須在輸出時使用sprintf或類似的格式對其進行格式化。
你不能,但如果你需要將它轉換爲int並保留零,你可以創建它的副本,然後將其轉換爲int,那麼你將有兩個版本,一個是int,一個是字符串。
// 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);
在數學上,前導0是無關緊要的。 09999和9999等於九千九百九十九。爲什麼你必須保持領先的零,如果它基本上是相同的數字? – BoltClock
你想要一個具有前導零的整數表示? – Clayton
這是令人困惑的。這僅用於打印/顯示此整數的值嗎? – Joe