2014-07-09 218 views
1

如何將字符串「09335887170」轉換爲整數?這是我曾嘗試過的:將字符串「09335887170」轉換爲整數

string a = "09335887170"; 
int myInt; 
bool isValid = int.TryParse(a, out myInt); // it returns false in this case 

if (isValid) 
{ 
    int plusOne = myInt + 1; 
    MessageBox.Show(plusOne.ToString()); 
} 

MessageBox.Show(a); 
int stringToInt = Convert.ToInt32("09335887170"); // it returns nothing with no error 
MessageBox.Show((stringToInt + 1).ToString()); 

int test = int.Parse(a); //it has type convertion error    
MessageBox.Show((test + 1).ToString()); 
+7

這個數字對於一個整數來說太大了。你有沒有考慮過使用很長時間? –

+1

簽出Long或BigInteger。另外爲了獲取詳細信息,只需使用「解析」 - 方法來獲得明確的例外。 –

+0

1.使用正常的'Parse' 2.運行代碼並得到一個錯誤3. Google錯誤信息....然後你會得到你的解決方案,然後問這個問題要容易得多 – musefan

回答

9

Int32(或僅int)的最大值爲2,147,483,647 你需要一個UInt64Int64Long

string a = "09335887170"; 
Int64 myInt; 
bool isValid = Int64.TryParse(a, out myInt); 
if (isValid) 
{ 
    int plusOne = myInt + 1; 
    MessageBox.Show(plusOne.ToString()); 
} 
+3

或者只是一個Int64表示的「Long」 。 ;) –

+0

這實際上並沒有編譯。你應該使用'long'或'Int64'。 – recursive

+1

沒有'int64',只是'Int64'或'long'。 – Jodrell

1

該數字超過了最大整數值。用長一點的。

1

試試這個

Int64 no = Convert.ToInt64( "09335887170"); 
+0

使用'Parse' not'Convert' – Jodrell

3
result = Convert.ToInt64(value); 

here更多信息。

(網上找到,我不是真的在C#中)