2017-01-30 164 views
-6

我正在解析其中包含文本和數字的字符串,例如abc00123。將字符串格式化爲數字

當我提取數字00123它仍然是一個字符串,所以我投給了一個雙。

我這樣做後,它在這開始時失去了零。

此外,數字的長度可能會有所不同。

無論如何保持零時,將字符串投到一個雙?

如果不是,也許我會比較這兩個字符串,如果原始數組的大小更大,如果可能,將差異追加到數字的開頭?

在此先感謝您的幫助。

+0

的數據存儲在二進制,它不會使整意義有前導零。如果您需要顯示數據或進行字符串操作,可以使用Padding格式化數據。 – Agalo

+0

地球上的什麼號碼是00123?這不是一個數字,雖然123存在,這是一個數字。 – Dalorzo

+1

很不清楚你的實際目標是什麼 - 請編輯帖子澄清。同時編輯也表明你已經搜索了類似的問題(比如http://stackoverflow.com/questions/2040939/convert-toint32-keep-preceding-zero)並解釋它在你的案例中沒有起作用。 –

回答

0

雙打的左手邊不能有零,因爲它實際上毫無意義。但是你可以像你說的那樣把它們比作字符串。對於那些長度不同的人,你可以使用PadLeft來使它們全部長度相同:

sepratedNumber.PadLeft(10,'0');這將在變量sepratedNumber的左側追加儘可能多的零,直到它的總長度等於10.

2

編號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
相關問題