我將數字存儲在數據庫中,有些數字的第一個數字爲零,因爲它們總是需要一定數量的數字。我有一個文本框,其中輸入了這個數字,所以我做了一個Convert.ToInt32(TextBox.Text),它刪除了起始零,如果它有一個。有沒有人有任何想法,我可以保持零,或將其添加到轉換後的開始?Convert.ToInt32 - Keep Preceding Zero
回答
的唯一途徑保持前面的零不是將其轉換爲數字。
一個數字沒有任何前面的零,因爲它只包含值,而不包含值的字符串表示。
如果你想將其轉換爲一個數字,然後將其轉換回字符串,重現之前的零,您可以使用自定義格式:
string formatted = number.ToString("00000");
或爲數字的動態數:
string formatted = number.ToString(new String('0', numberOfDigits));
+1解釋兩個選項,因爲最好的解決方案取決於數據的性質(imo) – Thorarin
是不是'number.ToString().PadLeft(numberOfDigits,'0')'更容易?至少更容易閱讀我會說... :) – Svish
當我這樣做填充時,我擔心負值。例如,PadLeft選項看起來像這樣:「00-9」而不是-009。 – Codesleuth
如果您需要保留一個填充零,然後將該值保留爲一個字符串。整數不能保存有關填充零的信息,因爲它們只是表示一個數字。
如果您需要驗證輸入的號碼,請使用Int32.TryParse或將該值與regular expression(如"^\d+$"
)相匹配。
編輯:除了Guffa's answer,你可以用「d」(MSDN)格式化到指定的字符數(以零填充,如果必要的話):
string formatted = number.ToString("D5"); // 13 -> 00013
+1,暗示有關Decimal(「D」)格式說明符。由於該問題指定了'Convert.ToInt32()',這是我個人首選填充值的方法。 – Codesleuth
您必須使用字符串格式保持前導零:
int fooValue = Convert.ToInt32(TextBox.Text)
//operations with foo Value
string formatValue = fooValue.ToString("#0000");
方式我會這樣做是當數字被放回到數據庫而不是餵它int
使用string
通過使用myint.ToString("0000000")
。 0的數量是填充數字的總長度。
- 1. XPATH:Get Preceding Childrens
- 2. Teradata ROWS UNBOUNDED PRECEDING
- 3. XPATH:Count Preceding Div元素
- 4. Convert.ToDouble,Convert.ToInt32
- 5. Convert.ToInt32 in C#
- 6. 嘗試Convert.ToInt32(值)
- 7. 與convert.toint32錯誤
- 8. Convert.ToInt32與TryParse
- 9. ASP.NET登錄,Convert.ToInt32();
- 10. Int32.Parse()VS Convert.ToInt32()?
- 11. 出現FormatException在Convert.ToInt32
- 12. image naturalWidth return zero
- 13. Ruby Nil and Zero
- 14. C++ Functors and Zero
- 15. SUMIFS返回ZERO
- 16. NumericTraits Zero and One
- 17. Keep VueJS snippet DRY
- 18. Angular factory keep undefined
- 19. Click event keep firing
- 20. Keep Getting ActivityNotFoundException
- 21. Redux Keep Session
- 22. Keep-Alive Dropwizard
- 23. Keep Sprite加速
- 24. TempData keep()vs peek()
- 25. Convert.ToInt32(x)與(int)相同x
- 26. 爲什麼Convert.ToInt32(DateTime)存在?
- 27. Convert.ToInt32是格式不正確
- 28. TCPDF set bottom margin zero
- 29. sql count/group by/zero
- 30. mysql divison by zero error
如果你想要一個前導零,當然你不想轉換爲Int32?爲什麼不把它作爲一個字符串? –
我認爲你不能保留它們。但您可以格式化轉換的int以再次顯示它們:http://msdn.microsoft.com/en-us/library/dd260048.aspx –
@Matt因爲數據庫類型是Int – Grace