2015-09-11 125 views
-5

我正在製作一個清單程序,要求用戶輸入他們想要購買的各種數量的不同物品。我使用這一行將項目數轉換爲雙打,所以我可以計算,但我得到一個錯誤,指出我有一個未處理的格式異常,即輸入字符串的格式不正確。有什麼我失蹤了嗎?使用Convert.ToDouble時發生異常

itembatteries = Convert.ToDouble(txtNumberofBatteries.Text); 
+4

如果輸入字符串不是以正確的格式被轉換爲一個雙Convert.ToDouble失敗。正確的格式取決於您的區域設置使用double.TryParse代替。順便說一下,這是所有寫在MSDN上,並做一點搜索之前,問這裏總是最好的路徑 – Steve

+0

什麼是導致它的字符串?如果它不是雙倍的,那就是爲什麼。 – dman2306

+3

你在文本框中輸入什麼內容?此外,根據您的文本框名稱,您可能希望將其轉換爲「int」而不是「double」,因爲電池非常困難。 –

回答

3

您可以嘗試使用double.TryParse代替。如果txtNumberofBatteries.Text不是double的有效字符串表示形式,這將停止異常。

例如:

double itembatteries; 
if (double.TryParse(txtNumberofBatteries.Text, out itembatteries)) 
{ 
    //Something with itembatteries 
} 
else 
{ 
    //Show Error: you didn't type a number 
} 
+0

這將抑制來自Convert.ToDouble的錯誤,但它不會幫助OP將TextBox.Text變成雙精度。 –

+0

怎麼樣,'itembatteries'將包含文本框中的值? – DaveShaw

+0

那麼爲什麼不Convert.ToDouble(txtNumberofBatteries.Text)的工作? –

相關問題