2010-11-23 102 views
-3

雖然我試圖將值轉換爲Int32,但我得到一個錯誤格式異常,這意味着值的格式不正確。我認爲我正在以正確的格式轉換值。當我轉換爲Int32格式異常

+15

你想要轉換什麼值?你可以給更多的信息或摘錄嗎? – SubniC 2010-11-23 12:05:17

+4

是的,我們需要看到你想要轉換的值。 – Kieron 2010-11-23 12:06:15

回答

3

嘗試使用Int32.TryParse()你可以找到MSDN

3

文檔,你會得到的情況下FormatException這樣的未來:

Convert.ToInt32("foo"); 
Convert.ToInt32(5.5); 

因爲

出現FormatException

值不包括一個可選的標誌後跟數字序列(0到9)。

MSDN

1
string str = "123"; 
int i = 0; 
if (int.TryParse(str, out i)) 
{ 
    //do your logic here 
} 

這裏我們分享您的代碼,你可能錯過了一些

0

或許暗示是「我想我在正確的格式轉換的值雖然」

是你確定你的號碼是根據你目前的文化格式?

如果不是,它是Int32.TryParse(字符串的NumberStyles,的IFormatProvider,的Int32%) [詳細這裏] [1],你應該使用

[1]:http://Int32.TryParse方法(String,的NumberStyles,的IFormatProvider ,Int32%)

0

您可以隨時使用GetType()來檢查您傳遞給此類函數的值的類型。

我被困在這個問題中的條件是將動態生成的十六進制的十進制值轉換爲int。通過使用GetType()找出值的類型並首先將其轉換爲double,然後int解決問題。