我正在解析其中包含文本和數字的字符串,例如abc00123。將字符串格式化爲數字
當我提取數字00123它仍然是一個字符串,所以我投給了一個雙。
我這樣做後,它在這開始時失去了零。
此外,數字的長度可能會有所不同。
無論如何保持零時,將字符串投到一個雙?
如果不是,也許我會比較這兩個字符串,如果原始數組的大小更大,如果可能,將差異追加到數字的開頭?
在此先感謝您的幫助。
我正在解析其中包含文本和數字的字符串,例如abc00123。將字符串格式化爲數字
當我提取數字00123它仍然是一個字符串,所以我投給了一個雙。
我這樣做後,它在這開始時失去了零。
此外,數字的長度可能會有所不同。
無論如何保持零時,將字符串投到一個雙?
如果不是,也許我會比較這兩個字符串,如果原始數組的大小更大,如果可能,將差異追加到數字的開頭?
在此先感謝您的幫助。
雙打的左手邊不能有零,因爲它實際上毫無意義。但是你可以像你說的那樣把它們比作字符串。對於那些長度不同的人,你可以使用PadLeft
來使它們全部長度相同:
sepratedNumber.PadLeft(10,'0')
;這將在變量sepratedNumber
的左側追加儘可能多的零,直到它的總長度等於10.
編號double不理解關於數字格式的任何事情 - 只有數字本身。當作爲雙精度來存儲時,123,0123和00123都是相同的值。如果你想格式化,你必須將它轉換回字符串。
舉例說明:
var testString = "00123";
var testDouble = double.Parse(testString);
Console.WriteLine(testDouble.ToString()); //would return 123
Console.WriteLine(testDouble.ToString("00000")); //would return 0
Console.WriteLine(testDouble.ToString("000000")); //would return 00
的數據存儲在二進制,它不會使整意義有前導零。如果您需要顯示數據或進行字符串操作,可以使用Padding格式化數據。 – Agalo
地球上的什麼號碼是00123?這不是一個數字,雖然123存在,這是一個數字。 – Dalorzo
很不清楚你的實際目標是什麼 - 請編輯帖子澄清。同時編輯也表明你已經搜索了類似的問題(比如http://stackoverflow.com/questions/2040939/convert-toint32-keep-preceding-zero)並解釋它在你的案例中沒有起作用。 –